配列から重複要素を取り除く方法をjsで実現する

方法 1:

2層のforループ、1層目と2層目の要素が同じかどうかを判断するため、同じ場合は要素の継ぎ目(開始位置、1)を削除、0は追加を意味する

let arr = ['a', 'b', 'c', 'qq', 'b', 'qq', 'wx', 1, 2, 1, 2];
console.log(arr);
      //两层for循环,判断第一层和第二层的元素是否相同,相同就删除元素splice(开始位置,1),0代表添加
        function norepeat(arr) {
            for (let i = 0; i < arr.length; i++) {
                for (let j = i + 1; j < arr.length; j++) {
                    if (arr[i] == arr[j]) {//下标相同则删除该值
                        arr.splice(j, 1);//后面的元素会自动补位,需要比较一次j所在位置的元素,所以需要使j自减
                        j--;
                    }
                }
            }
       return arr;
     }
console.log(norepeat(arr));

結果を示す:

方法 2:

es6 の set() メソッド

es6 での set の主な機能は、配列の重複排除であり、set() は配列の重複排除をインスタンス化し、次に配列のマージと減算を行います。

Array.from() メソッドは、Set 構造を配列に変換できます。これは、配列の繰り返しメンバーを削除する別の方法です。

let arr = ['a', 'b', 'c', 'qq', 'b', 'qq', 'wx', 1, 2, 1, 2];
console.log(arr);
let newarr1 = new Set(arr);
console.log(newarr1);
//Array.from()方法可以将 Set 结构转为数组,去除数组重复成员的另一种方法
let newarr2 = Array.from(new Set(arr));
console.log(newarr2);

結果を示す:

 方法 3:

indexof() は文字列を見つけます:

重複排除が必要な配列をトラバースして、新しい配列に現在の要素があるかどうかを判断し、存在しない場合は、値を新しい配列に追加 (プッシュ) します。

indexOf() 大文字と小文字を区別する戻り値: -1 は、一致する部分文字列が見つからないことを意味します

let arr = ['a', 'b', 'c', 'qq', 'b', 'qq', 'wx', 1, 2, 1, 2];
console.log(arr);
function newArr(arr) {
            let newarr4 = [];    //新数组
            for (let i = 0; i < arr.length; i++) {
                if (newarr4.indexOf(arr[i]) == -1) {    //判断新数组中是否有当前元素,为-1就是没有该值,最后将值添加(push)进新数组中
                    newarr4.push(arr[i]);
                }

            }
            return newarr4;
        }
console.log(newArr(arr));

結果を示す:

 方法 4:

filter() メソッドは重複する要素を削除し、indexof() メソッドは文字列を見つけます

filter()方法会创建一个新数组,原数组的各要素はコールバック関数に渡され、コールバック関数には戻り値があります。戻り値が true の場合、要素は新しい配列に保存されます。戻り値が false の場合、要素は新しい配列に保存されません。新しい配列;元の配列は変更されません。

let arr = ['a', 'b', 'c', 'qq', 'b', 'qq', 'wx', 1, 2, 1, 2];
console.log(arr);
let newarr3 = arr.filter(function (ele, index) {
            return arr.indexOf(ele) == index;
        });
console.log(newarr3);

結果は次のことを示しています。

filter()解析:

 

おすすめ

転載: blog.csdn.net/qq_64180670/article/details/128279150