场景1
我调用的 API 返回一个包含重复项的数组。
var array1 = [{id:1, foo:23},{id:1, foo:24},{id:1, foo:22},{id:2, foo:26},{id:3, foo:26}]; //example
问题 1 -> 如何消除重复项以获得所需的结果:
var array2 = [{id:1, foo:23 },{id:2, foo:26},{id:3, foo:26}];
<小时/>
场景2
在我的分页中,我会调用一组新的数组
var array1 = [{id:2, foo:27},{id:2, foo:28},{id:3, foo:29},{id:4, foo:28},{id:5, foo:23}]; //example
然后我执行一个 foreach 循环,将其推送到 array2。
var array2 = [{id:1, foo:23},{id:2, foo:27},{id:3, foo:27}];
angular.forEach(array1, function(a){
array2.push(a)
});
问题 2 -> 如何防止 array2 中存在的 array1 中的对象被推送。
期望的结果:
var array2 = [{id:1, foo:23},{id:2, foo:27},{id:3, foo:27},{id:4, foo:28},{id:5, foo:23}]
最佳答案
我建议使用 Lodash 库 ( https://lodash.com ),它大大简化了生活。
如果您愿意使用 Lodash,它具有 uniq
函数 ( https://lodash.com/docs#uniq )。
var myUniqObjectArray = _.uniq(array1, 'id');
其中 array1
是源数组,id
是比较所有对象所依据的属性。
关于javascript - 消除数组 Javascript/AngularJS 中的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32418191/