首页 > 解决方案 > 如何消除 JavaScript 中的重复元素(包括自身)?

问题描述

这是示例。

输入:

var nums = [2, 2, 2, 3, 3, 4, 5, 5, 5, 6]

我想要输出 = [4,6]。

我是菜鸟,我尝试使用另一个数组来deposit[4,6],但我已经尽力了:

     var nums = [2, 2, 2, 3, 3, 4, 5, 5, 5, 6],
        temp = [],
        index = -1;
    for (var i = 0; i < nums.length; i++) {
        target = nums[i];
        for (var j = i + 1; j < nums.length; j++) {
            if (target == nums[j]) {
                target = nums[i + 1];
                break;
            }
            else {
                index++;
                temp[index] = nums[i];
            }
        }
        console.log(temp[index]);
    }

不知道。

我知道如何消除重复元素(没有自己)。

标签: javascript

解决方案


在已排序的数组上,可以过滤掉所有元素 wo 等于它们之前或之后的项目:

const result = nums.filter((it, i) => 
   (!i || it !== nums[i - 1]) && 
   (i + 1 === nums.length || it !== nums[i + 1])
 );

推荐阅读