2016-03-04 59 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