使用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:在嵌套字典中添加键/值对;键和值是变量

与参数匹配时返回对象的键和值[重复]

java问题,我想在java中存储键值对,以便使用,但是键值对的键和值都有重复元素,使用hashmap会产生覆盖。

如何删除json对象键和值。?

高效地将 JavaScript 键和值数组转换为对象

将json对象值变成javascript中的键和值[关闭]