2016-03-04 70 views
-1

陣列不存在我有兩個陣列尋找項目在另一陣列

self.objarr = [ 
     { name: ' abc '}, 
     { name: ' def '}, 
     { name: ' xyz '} 
      ]; 

self.strarr =[' abc ',' mno ']; 

我想找到在strarr物品其不是已經存在於objarr(在上述情況下「MNO」)。

更新:顯示的答案鏈接具有相同對象樣式的數組,因此要麼都是字符串數組,要麼兩者都是對象,它們具有相同的樣式。但在我的情況下,一個是另一個是字符串數組的對象。 答案之一是如下:

var x = ["a","b","c","t"]; 
var y = ["d","a","t","e","g"]; 

myArray = y.filter(function(el) { 
    return x.indexOf(el) < 0; 
}); 

我想作爲下同線的東西,但它沒有工作:

myArray = self.strarr.filter(function (el) { 
       console.log(el); 
       return self.objarr.name.indexOf(el) < 0; 
      }); 

我有希望有人能幫助重新打開。

+0

http://stackoverflow.com/questions/8628059/check-if-every-element-in-one-array-is-in-a-second-array http://stackoverflow.com/questions/ 15514907 /確定是否一個數組包含另一個數組的內容在javascri http://stackoverflow.com/questions/16312528/check-if-an-array-contains-任何元素在另一個數組中的JavaScript中 –

+0

@Eray感謝您的鏈接,但無法找到答案,我在他們的問題,也許我失去了一些東西.. – Arnab

+0

@RoyJ感謝您的鏈接。如果你從他們中任何人那裏回答,我會接受 – Arnab

回答

0

因爲在你的情況,你有一個對象數組和另一個字符串數組,你可以使用下面的代碼 -

myArray = self.strarr.filter(function(strname){ 
    var element = $.grep(self.objarr, function(el){ return el.name == strname; }); 
    if(element.length==0) return strname; 
}); 

希望這有助於!

+0

謝謝,我會檢查.. – Arnab

+0

@arnab好的..請接受,如果它解決了你的問題。 –

+0

嘗試https://jsfiddle.net/yo2ppggc/獲取錯誤..意外的令牌。 – Arnab