Use js para realizar el método de eliminar elementos duplicados de una matriz

Método 1:

Dos capas de bucles for, para determinar si los elementos de la primera capa y la segunda capa son iguales, elimine el empalme del elemento (posición de inicio, 1) si son iguales, 0 significa agregar

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));

Mostrar resultados:

Método 2:

El método set() en es6

La función principal de set en es6 es deduplicar la matriz, set() instancia la deduplicación de la matriz y, en segundo lugar, fusionar y restar la matriz.

El método Array.from() puede convertir la estructura Set en una matriz, otro método para eliminar miembros repetidos de la matriz.

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);

Mostrar resultados:

 Método 3:

indexof() encuentra cadenas:

Recorra la matriz que debe desduplicarse para determinar si hay un elemento actual en la nueva matriz y, de no ser así, agregue (inserte) el valor en la nueva matriz.

valor de retorno indexOf() sensible a mayúsculas y minúsculas: -1 significa que no se encontró ninguna subcadena coincidente

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));

Mostrar resultados:

 Método 4:

El método filter() elimina elementos duplicados y el indexof() encuentra cadenas

filter()方法会创建一个新数组,原数组的Cada elemento se pasa a la función de devolución de llamada, y la función de devolución de llamada tiene un valor de retorno de retorno. Si el valor de retorno es verdadero, el elemento se guardará en la nueva matriz; si el valor de retorno es falso, el elemento no se guardará en la nueva matriz; la matriz original no cambiará.

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);

Los resultados muestran que:

análisis de filtro():

 

Supongo que te gusta

Origin blog.csdn.net/qq_64180670/article/details/128279150
Recomendado
Clasificación