filter数组遍历(去重、筛选元素)

374 阅读1分钟
  // 筛选掉0和''
        let arr = [13, 0, '', 90, 78, '', '']
        //因为filter会自动生成一个新数组,所以只要去接就行,不需要再声明一个空数组
        let newArr = arr.filter(function (v, i) {
            if (v !== 0 && v !== '') {
                return v
            }
        })
        console.log(newArr);

        //数组去重
        let arr1 = [1, 1, 2, 3, 4, 4, 5, 6, 6, 6, 6, 7, 7, 8, 9, 9, 9]
        let newArr1 = arr1.filter(function (v, i) {
            // i是数组中每一项的索引值
            return arr1.indexOf(v) === i //.indexOf(v)表示每个元素第一次出现的索引,与数组索引相同便是第一次出现
            /* 第一轮:0(1第一次出现的索引号) === 0
               第二轮:0(1第一次出现的索引号)=== 1
               第三轮:2(2第一次出现的索引号)=== 2
               第四轮:3(3第一次出现的索引号)=== 3 */
        })
        console.log(newArr1);