set去重 和 双重for循环去重

2021-06-09  本文已影响0人  偶头像超凶
let arr = [{id:1, name: 'aaa'}, {id: 2, name: 'bbb'}, {id:3, name: 'cccc'}, {id:4, name: 'dddd'}]
let arr1 = [1,2]
let newarr = arr.filter((item)=>{
    return new Set(arr1).has(item.id)
})
console.log(newarr)
let arr = [1, 2, 2, 3, 1, 4, 4, 8, 8, 8, 8, 5, 5, 6, 6, 7, 7, 8]
//第一次遍历数组
for (var i = 0; i < arr.length; i++) {
    //第二次遍历数组,是第一遍历数组下标的下一个数据
    for (var j = i + 1; j < arr.length; j++) {
        //判断第一层遍历数据和第二层遍历的数据是否相同
        if (arr[i] == arr[j]) {
            //如果数据相同则通过splice删除一条相同的数据
            arr.splice(i, 1)
            //i是第一层遍历的下标,因为上一步删除了一条数据,所以下标也需要减一,否则实际下标,要比数组中的数据更多
            i--;
            //j 也同样需要和i一样减一,保持遍历依旧同步判断
            j--;
        }
    }
}
//去重完成以后,数组数据在控制台输出
console.log(arr)
上一篇 下一篇

猜你喜欢

热点阅读