2016-04-26 4 views
5

की सरणी से मेल नहीं खाता सरणी से आइटम प्राप्त करने के लिए मूल्यों की है कि मैच सरणी से आइटम प्राप्त lodash मैं इस का उपयोग करें:सरणी है कि मूल्यों

var result =_(response).keyBy('id').at(arrayOfIDs).value(); 

मैं विपरीत कैसे कर सकता है? आइटम है कि मूल्यों की सरणी से मेल नहीं खाता प्राप्त करें।

उत्तर

3

यह आसानी से वेनिला जेएस के साथ किया जाता है।

var nonMatchingItems = response.filter(function (item) { 
    return arrayOfIDs.indexOf(item.id) === -1; 
}); 

एक ही दृष्टिकोण यदि आप सकारात्मक lodash का उपयोग करना चाहिए, lodash's _.filter() साथ संभव है।

ES6 ऊपर के संस्करण:

var nonMatchingItems = response.filter(item => arrayOfIDs.indexOf(item.id) === -1); 

// or, shorter 
var nonMatchingItems = response.filter(item => !arrayOfIDs.includes(item.id)); 
+0

यह काम करता है, धन्यवाद। – qr11

1

आप lodash की जरूरत नहीं है, बस सादा जावास्क्रिप्ट का उपयोग करें; यह भी पढ़ना आसान है ...

function getId (val) { 
    return val.id; 
} 

function notMatchId (val) { 
    return arrayOfIDs.indexOf(val) === -1; 
} 

var result = response.map(getId).filter(notMatchId); 
+0

वास्तव में सही नहीं, इस आईडी की सूची देता है, ओ पी संबद्ध आइटम चाहता है। – Tomalak

संबंधित मुद्दे