来自刘:
接收两个参数,要去重数组和新数组

    //去重
    function distincts(arr, newarr) {
        for (let i = 0; i < arr.length; i++) {
            if (newarr.indexOf(arr[i]) === -1) {
                newarr.push(arr[i])
                console.log(newarr)
            }
        }
        return newarr
    }

    console.log(distincts(['s', 'u', 'c', 'e', 's', 's'], []))


来自龙:
转自:https://juejin.cn/post/706373...

    // 用Set去重。一个简单的方式, 但是又与太简单已被在面试中禁用
    function my_sort1(arr) {
        return [...new Set(arr)]
    }

    // 用indexOf去重。使用api(这里indexOf就是api)的去重方式
    function my_sort2(arr) {
        let newArr = []
        for (let val of arr) {
            if (newArr.indexOf(val) === -1) {
                newArr.push(val)
            }
        }
        return newArr
    }

    // 用Map去重。尽量不使用api的方法
    function my_sort3(arr) {
        // 创建一个映射实例
        let map = new Map()
        for (let i = 0, len = arr.length; i < len; i++) {
            // 若该映射实例中没改映射则添加该映射
            if (!map[arr[i]]) {
                map.set(arr[i], true)
            }
        }
        // 将映射中的key取出创建一个新数组返回
        return [...map.keys()]
    }

    console.log(my_sort3(['s', '', '', null, null, undefined, undefined,
        function test() {},
        function test() {}, 'u', 'c', 'c', 'e',
        's', 's'
    ]))//['s', '', null, undefined, ƒ, ƒ, 'u', 'c', 'e']。这里不知为啥无法去重函数

常用昵称
13 声望0 粉丝

下一篇 »
JS正则