Javascript - 从数组中删除唯一元素

Tyl*_*eld 5 javascript arrays

我想知道如何从数组中删除唯一元素。例如:

var arr = [1, 2, 2, 4, 4]会回来[2, 2, 4, 4]。哪里[1, 2, 3]会返回,[]因为所有元素都是唯一的。

我相信我需要用数组中的每个其他元素检查每个元素,但我不知道如何去做。

谢谢!

Nin*_*olz 5

使用 ES6,您可以使用 aArray#map并使用 计算值Array#forEach

稍后使用Array#filter并检查计数。

如果大于则1返回true(结果集中包含该项),否则返回false(结果集中不包含该项)。

function getNotUnique(array) {
    var map = new Map();
    array.forEach(a => map.set(a, (map.get(a) || 0) + 1));
    return array.filter(a => map.get(a) > 1);
}

console.log(getNotUnique([1, 2, 2, 4, 4]));
console.log(getNotUnique([1, 2, 3] ));
Run Code Online (Sandbox Code Playgroud)