0

例如说[1,2,3,[1,1,2],[3,2],2]这样的应该如何去掉重复的数字,谢谢

PaddingMe 1.1k
2014-03-24 提问

查看全部 5 个回答

0

思路是合并子项,再用Set去重即可

const data = [1,2,3,[1,1,2],[3,2],2];
const unique = [...new Set(data.reduce((p, vo) => p.concat(vo), []))];

推荐答案

2

已采纳
var arr = [1,2,3,[1,1,2],[3,2],2];

var result = arr.reduce(function(v, i) {
    if (Array.isArray(i)) {
        i.forEach(function(item) {
            if (v.indexOf(item) < 0) {
                v.push(item);
            }
        });
    } else {   
        if (v.indexOf(i) < 0) {
            v.push(i);
        }
    }
    return v;
}, []);

console.log(result);

推广链接