删除数组Javascript中具有重复项的所有项

删除数组Javascript中具有重复项的所有项,javascript,Javascript,我在这里搜索了一下,没有找到解决办法。显然,如果我错了,我会被纠正的。我试图做的是返回数组中没有重复项的值 示例: myArr=[2,1,2,3]//回答[1,3] myArr=[3,1,2,2,3]//回答[1] 我会发布一些代码,但我自己还没有弄明白这一点,我找到的唯一代码示例是删除任何重复值 上述可能的解决方案是不返回重复项。。。我试图返回没有重复项的值。一个选项是使用查找重复索引。考虑给定元素 e 和索引 i : 如果e是数组中两个相同元素的第一个,则indexOf(e)将返回i,ind

我在这里搜索了一下,没有找到解决办法。显然,如果我错了,我会被纠正的。我试图做的是返回数组中没有重复项的值

示例:

myArr=[2,1,2,3]//回答[1,3]

myArr=[3,1,2,2,3]//回答[1]

我会发布一些代码,但我自己还没有弄明白这一点,我找到的唯一代码示例是删除任何重复值

上述可能的解决方案是不返回重复项。。。我试图返回没有重复项的值。

一个选项是使用查找重复索引。考虑给定元素<代码> e <代码>和索引<代码> i <代码>:

  • 如果
    e
    是数组中两个相同元素的第一个,则
    indexOf(e)
    将返回
    i
    indexOf(e,i+1)
    将返回第二个元素的索引
  • 如果
    e
    是数组中两个相同元素的第二个,
    indexOf(e)
    将返回第一个元素的索引,
    indexOf(e,i+1)
    将返回
    -1
  • 如果
    e
    是唯一的元素,
    indexOf(e)
    将返回
    i
    indexOf(e,i+1)
    将返回
    -1
  • 因此:

    myArr.filter(function (e, i, a) {
      return a.indexOf(e) === i && a.indexOf(e, i + 1) === -1
    });
    
    一个选项是使用查找重复索引。考虑给定元素<代码> e <代码>和索引<代码> i <代码>:

  • 如果
    e
    是数组中两个相同元素的第一个,则
    indexOf(e)
    将返回
    i
    indexOf(e,i+1)
    将返回第二个元素的索引
  • 如果
    e
    是数组中两个相同元素的第二个,
    indexOf(e)
    将返回第一个元素的索引,
    indexOf(e,i+1)
    将返回
    -1
  • 如果
    e
    是唯一的元素,
    indexOf(e)
    将返回
    i
    indexOf(e,i+1)
    将返回
    -1
  • 因此:

    myArr.filter(function (e, i, a) {
      return a.indexOf(e) === i && a.indexOf(e, i + 1) === -1
    });
    

    如果不是关联数组(您的案例):


    如果不是关联数组(您的案例):


    varyourArray=[1,2,1,3]

            var uniqueValues = [];
            $.each(yourArray, function (i, value) { //taking each 'value' from yourArray[]
                if ($.inArray(value, uniqueValues) === -1) { 
                     uniqueValues.push(value); // Pushing the non - duplicate value into the uniqueValues[] 
                }
            });            
            console.log(uniqueValues);
    

    结果:[1,2,3]

    varyourArray=[1,2,1,3]

            var uniqueValues = [];
            $.each(yourArray, function (i, value) { //taking each 'value' from yourArray[]
                if ($.inArray(value, uniqueValues) === -1) { 
                     uniqueValues.push(value); // Pushing the non - duplicate value into the uniqueValues[] 
                }
            });            
            console.log(uniqueValues);
    

    结果:[1,2,3]

    可能重复:@42shadow42:但这不是唯一的;请看示例。如果我犯了错误,您希望删除副本的所有副本,但不是所有副本,而是感谢您纠正我的错误。尽管如此,请向我们展示您的尝试。
    myArr.filter((x,i,a)=>a.indexOf(x)==a.lastinexof(x))
    应该执行此操作可能的副本:@42shadow42:但这不是唯一的;请看示例。如果我犯了错误,您希望删除副本的所有副本,但不是所有副本,而是感谢您纠正我的错误。请显示您的尝试。
    myArr.filter((x,i,a)=>a.indexOf(x)==a.lastIndexOf(x))
    应该这样做