Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript删除与对象的另一个键和值对相对应的对象数组中的重复项_Javascript_Arrays_Javascript Objects_Keyvaluepair - Fatal编程技术网

使用javascript删除与对象的另一个键和值对相对应的对象数组中的重复项

使用javascript删除与对象的另一个键和值对相对应的对象数组中的重复项,javascript,arrays,javascript-objects,keyvaluepair,Javascript,Arrays,Javascript Objects,Keyvaluepair,有一个对象数组,对象有两个键和值对 [{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:"

有一个对象数组,对象有两个键和值对

[{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:“US”},{fruit:“banana”,locale:“US”},{fruit:“apple”,locale:“US”},{fruit:“apple”,locale:“IT”},{fruit:“banana”,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);

控制台日志(结果)您可以通过匹配当前迭代的索引值筛选出对象。大概是这样的:

var data=[{fruit:“apple”,locale:“US”},{fruit:“US”},{fruit:“banana”,locale:“US”},{fruit:“apple”,locale:“US”},{fruit:“apple”,locale:“IT”},{fruit:“banana”,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);
控制台日志(结果)试试这个

    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);
试试这个

    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);

它可能涉及迭代数组并存储一个值,如fruit locale,然后如果得到一个重复的值,则从数组中拼接它。您尝试过什么?您期望的输出是什么?它可能涉及到在数组上迭代并存储一个值,如fruit locale,然后如果您得到一个重复的值,请从数组中拼接它。你尝试过什么?你期望的结果是什么?