查找另一个数组中不存在于数组中的项

时间:2016-03-04 13:37:58

标签: javascript

我有两个数组

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;
            });

我重新开口,希望有人可以提供帮助。

1 个答案:

答案 0 :(得分:0)

因为在您的情况下,您有一个对象数组和另一个字符串数组,您可以使用以下代码 -

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

希望这有帮助!