实现数组去重的多种方法

2017-06-26  本文已影响0人  swhzzz

ES6

let arr = [1, 2, 2, 3, 4, 100, 2, 100, 7, 7];
function unique(arr){
  // return Array.from(new Set(arr))
   return [...new Set(arr)]
}
unique(arr)

Array.from将类数组对象和可遍历的对象转换为数组 阮一峰ES6

ES5

// 返回新数组  indexOf方法
let arr = [1, 2, 2, 3, 4, 100, 2, 100, 7, 7];
        let newArr = []
        arr.map((item) => {
            return newArr.indexOf(item) === -1 ? newArr.push(item) : ''
        })
        console.log(newArr)
// 返回新数组 filter方法
        let arr = [1, 2, 2, 3, 4, 100, 2, 100, 7, 7];
        let newArr = arr.filter((item, index) => {
            return arr.indexOf(item) === index
        })
        console.log(newArr)
// 原数组操作  splice方法
        let arr = [1, 2, 2, 3, 4, 100, 2, 100, 7, 7];
        let newArr = []
        for (let i = 0; i < arr.length; i++) {
            if (newArr.indexOf(arr[i]) === -1) {
                newArr.push(arr[i])
            } else {
                arr.splice(i, 1)
                i--
            }
        }
        console.log(arr)
// 对象的属性不能重复的特性
function del(arr) {
            let obj = {}
            let t = []
            for (let i = 0; i < arr.length; i++) {
                if (!obj[arr[i]]) {
                    obj[arr[i]] = 1
                    t.push(arr[i])
                }
            }
            return t
        }
上一篇 下一篇

猜你喜欢

热点阅读