复杂数组去重

问题描述

有如下结构的数组

let testArr = [1, 1, 3,'hello', [3, 4, 4,'hello', '5', [5, 5, ['a', 'r']]], {
    key: 'test'
}, 4,[ 3, 0, 2, 3]]

希望得到去重的数组,不能改变内层数组的结构,希望的结构如下:

[1, 3,'hello', [3, 4, 'hello','5', [5,  ['a', 'r']]], {
    key: 'test'
}, 4,[ 3, 0, 2]]

请问如何实现呢?

阅读 3.2k
1 个回答

同级去重,没有对object的key去重


const intersection = arr => {
    const uniq = [];
    for (let item of arr) {
        if (item instanceof Array) {
            uniq.push(intersection(item));
        } else {
            if (!uniq.includes(item)) {
                uniq.push(item);
            }
        }
    }
    return uniq;
}; 
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏