【发布时间】:2015-12-12 15:00:57
【问题描述】:
我正在尝试实现一个类似于 lodash _.without 的函数,但它应该适用于对象数组:
function withoutArrayOfObjects (arr1, arr2) {
var resultArr = [];
for (var i = 0; i < arr1.length; i++) {
for (var j = 0; j < arr2.length; j++) {
if (!_.isEqual(arr1[i], arr2[j])) {
resultArr.push(arr1[i]);
}
}
}
return resultArr;
}
在这种情况下可以正常工作:
var array1 = [{0: 'test', 1: 'test2'}, {0: 'test3', 1: 'test4'}];
var array2 = [{0: 'test', 1: 'test2'}];
withoutArrayOfObjects(array1, array2);
但是如果数组包含两个对象则失败:
var array3 = [{0: 'test', 1: 'test2'}, {0: 'test3', 1: 'test4'}, {0: 'test5', 1: 'test6'}, {0: 'test7', 1: 'test8'}];
var array4 = [{0: 'test', 1: 'test2'}, {0: 'test5', 1: 'test6'}];
withoutArrayOfObjects(array3, array4);
您能帮我修复/改进功能吗?使用纯 JS 或 jquery/lodash。
【问题讨论】:
标签: javascript jquery lodash