我无法理解这个。有人可以给我展示一个执行此操作的函数的示例吗?我需要一个 javascript 函数来执行此操作
如果所有 array1s 值与 array2s 值匹配,则返回 true 如果没有/部分匹配,则返回不匹配的 array1s 值
array1 = [{name:'joe'},{name:'jill'},{name:'bob'}]
array2 = [{name:'joe'},{name:'jason'},{name:'sam'}]
match(array1, array2)
//if fails returns [{name:'jill'}, {name:'bob'}]
//if success returns true
请帮助我的大脑受伤XD
谢谢
编辑:很抱歉在对象具有一些不同的其他属性之前没有这么说。所以给定的对象可能看起来像
array1x = [{name:'joe', id:33},{name:'jill'},{name:'bob'}]
array2x = [{name:'joe', state:'fl'},{name:'jill'},{name:'bob'}]
我需要只匹配对象内的名称属性
最佳答案
Array.prototype.filter() + Array.prototype.some() =
function match(arr1, arr2) {
var notFound = arr1.filter(function(obj1) {
return !arr2.some(function(obj2) {
return obj2.name == obj1.name;
});
});
return !notFound.length || notFound;
}
关于数组对象中的javascript数组对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22541284/