使用javascript删除与对象的另一个键和值对相对应的对象数组中的重复项
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用javascript删除与对象的另一个键和值对相对应的对象数组中的重复项相关的知识,希望对你有一定的参考价值。
具有一个对象数组,对象具有两个键和值对。
[fruit:"apple",locale:"US",
fruit:"orange",locale:"US",
fruit:"banana",locale:"US",
fruit:"apple",locale:"US",
fruit:"orange",locale:"IT",
fruit:"apple",locale:"IT",
fruit:"banana",locale:"IT",
fruit:"orange",locale:"IT"
fruit:"apple",locale:"IT"]
如何实现水果在同一地区不得重复,水果在不同的区域可以相同。
答案
您可以通过匹配当前迭代的索引值来过滤出对象。像这样的东西:
var data=[fruit:"apple",locale:"US",fruit:"orange",locale:"US",fruit:"banana",locale:"US",fruit:"apple",locale:"US",fruit:"orange",locale:"IT",fruit:"apple",locale:"IT",fruit:"banana",locale:"IT",fruit:"orange",locale:"IT",fruit:"apple",locale:"IT"];
var result = data.filter((e,i,self)=>self.findIndex(k=>k.fruit==e.fruit && k.locale==e.locale)==i);
console.log(result);
另一答案
尝试一下..
obj = [fruit:"apple",locale:"US",
fruit:"orange",locale:"US",
fruit:"banana",locale:"US",
fruit:"apple",locale:"US",
fruit:"orange",locale:"IT",
fruit:"apple",locale:"IT",
fruit:"banana",locale:"IT",
fruit:"orange",locale:"IT"
fruit:"apple",locale:"IT"]
const uniqueArray = this.obj.filter((item, index) =>
const temp = JSON.stringify(item);
return index === this.obj.findIndex(obj =>
return JSON.stringify(obj) === temp;
);
);
console.log(uniqueArray);
以上是关于使用javascript删除与对象的另一个键和值对相对应的对象数组中的重复项的主要内容,如果未能解决你的问题,请参考以下文章
Javascript:在嵌套字典中添加键/值对;键和值是变量