我在Angularjs应用程序中编写了一个javascript函数。我只需要做的就是删除arr1中的所有项目,这些项目在arr2中也有(在arr2中重复)。
//array1 = array1 - array2
$rootScope.removeArrayDuplicated = function (arr1, arr2) {
console.log('before');
console.log(arr1);
for (var i = 0; i < arr2.length; i++) {
Inner: for (var j = 0; j < arr1.length; j++) {
if (arr2[i].name == arr1[j].name) {
console.log("inside " + arr2[i].name + " " + arr1[j].name);
arr1.splice(j, 1);
j--;
break Inner;
}
}
}
console.log('after');
console.log(arr1);
return arr1;
}
我在arr1的值之前和之后打印。但是我在arrays之前和之后都得到了相同的数组。我可能做错了。请告诉我。
*数组包含json对象
这应该工作
$scope.removeArrayDuplicated = function(arr1, arr2) {
return arr1.filter(item => !(arr2.some(item2 => item.name === item2.name)));
}
这是通过Babel转译的es5代码
$scope.removeArrayDuplicated = function (arr1, arr2) {
return arr1.filter(function (item) {
return !arr2.some(function (item2) {
return item.name === item2.name;
});
});
};
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句