我有两个数组
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 :(得分:0)
因为在您的情况下,您有一个对象数组和另一个字符串数组,您可以使用以下代码 -
myArray = self.strarr.filter(function(strname){
var element = $.grep(self.objarr, function(el){ return el.name == strname; });
if(element.length==0) return strname;
});
希望这有帮助!