javascriptの中で組は重いいくつかの方法に行きます.

5998 ワード

配列
重い問題は開発の中ではほとんど先端で処理しないですが、先端はまだ熟練していて、しかも面接の中のホットスポットです.だから、興味がある友達は一緒に勉強してもいいです.
第一の方法–配列indexOf()を利用する方法
Array.prototype.only = function() {
            var arr = this;
            var newArr = [];
            for (var i = 0; i < arr.length; i++) {
                //           arr[i],            
                if (newArr.indexOf(arr[i]) == -1) {
                    newArr.push(arr[i]);
                }
            }
            return newArr;
        }
        var arr = [3, 4, 5, 4, 3, 2, 1, 5, 6];
        console.log(arr.unique());
第二の方法–オブジェクトの属性を利用する
 Array.prototype.only = function() {
            var arr = this;
            var newArr = [];
            var obj = {};
            for (var i = 0; i < arr.length; i++) {
                //        arr[i]    ,           ,             1--        ;
                if (!obj[arr[i]]) {
                    newArr.push(arr[i]);
                    obj[arr[i]] = 1;
                }
            }
            return newArr;
        }
        var arr = [7, 4, 5, 8, 3, 2, 5, 5, 6];
        console.log(arr.only());
第三の方法–行列の並べ替えを利用する–sort()方法
 Array.prototype.only = function() {
            var arr = this;
            var arr1 = arr.sort();
            var newArr = [arr1[0]];
            for (var i = 1; i < arr1.length; i++) {
                //  arr1  i  ,           ,           
                if (arr1[i] != newArr[newArr.length - 1]) {
                    newArr.push(arr1[i]);
                }
            }
            return newArr;
        }
        var arr = [7, 10, 5, 11, 3, 2, 5, 5, 6];
        console.log(arr.only());
第四の方法–二重forサイクルを利用する
 Array.prototype.only = function() {
            var arr = this;
            var newArr = [arr[0]];
            for (var i = 0; i < arr.length; i++) {
                var flag = false;
                for (var j = 0; j < newArr.length; j++) {
                    //              ,           
                    if (arr[i] == newArr[j]) {
                        flag = true;
                        break;
                    }
                }
                if (!flag) {
                    newArr.push(arr[i]);
                }
            }
            return newArr;
        }
        var arr = [20, 10, 5, 11, 5, 2, 5, 5, 6];
        console.log(arr.only());