美文网首页
28.数组的去重与拷贝

28.数组的去重与拷贝

作者: 最爱喝龙井 | 来源:发表于2020-05-05 15:08 被阅读0次

    1. 数组去重

    • 思路:通过indexOf()方法判断数组中是否有这一项,如果没有就放到新创建的数组中
    var arr = [1,1,2,2,3,3];
            Array.prototype.norepeat = function() {
                var result = [];
                for(var i = 0; i < this.length; i++) {
                    if(result.indexOf(this[i]) == -1) {
                        result.push(this[i])
                    }
                }
                return result;
            }
            arr.norepeat() //[1,2,3]
    

    2. 数组的拷贝

    • 浅拷贝很简单就不记录了,只记录一下深拷贝,思路,判断数组每一项的数据类型。
    var arr1 = [1,2,[3,4]]
            function deepCopy(arr, result) {
                var result = result || [];
                for(var i = 0; i < arr.length; i++) {
                    if(arr[i] instanceof Array) {
                        result[i] = [];
                        deepCopy(arr[i], result[i])
                    }else {
                        result.push(arr[i])
                    }
                    
                }
                return result;
            }
            var arr2 = deepCopy(arr1)
            arr2[2].push(5) // [1,2,[3,4,5]]
            arr1 // [1,2,[3,4]]
    

    相关文章

      网友评论

          本文标题:28.数组的去重与拷贝

          本文链接:https://www.haomeiwen.com/subject/wlymghtx.html