Varios métodos de deduplicación de matriz JS

Tabla de contenido

I. Introducción

Dos, varios métodos de deduplicación de matriz

1. Dos bucles for

2. método de filtro ()

3. Método array include()

4. Método Array indexOf()

5. establecer el método de deduplicación

3. Resumen


I. Introducción

    En el desarrollo de nuestro proyecto, cuando recibimos los datos solicitados del backend, a menudo necesitamos procesar la matriz. A veces, necesitamos desduplicar los datos del front-end antes de enviarlos al backend. Los datos devueltos deben desduplicarse antes. usar

Dos, varios métodos de deduplicación de matriz

1. Dos bucles for

Idea de implementación: a través de dos bucles, cada vez que el bucle externo toma un valor, el bucle interno comienza a verificar si el valor es el mismo que el bucle externo. Si son iguales, significa que hay el mismo valor. Use el método splice () para eliminar esta matriz . Un elemento, después de que se completa el ciclo, se logra el efecto de deduplicación de la matriz.

      var arr = [1, 2, 3, 4, 1, 3]
      // 两次循环
      function unique(arr) {
        let len = arr.length
        for (let i = 0; i < len; i++) {
          for (let j = i + 1; j < len; j++) {
            if (arr[i] == arr[j]) {
              arr.splice(j, 1)
              j-- //没删除一个 少了一项
              len--
            }
          }
        }
        return arr
      }
      console.log(unique(arr))  // [1,2,3,4]

2. método de filtro ()

Idea de implementación: use el método filter() para recorrer la matriz y luego use el método indexOf para juzgar si el valor actual es la primera aparición , si es la primera aparición, es verdadero; si no es la primera aparición , es falso, y el método de filtro es exactamente Es cada elemento cuyo resultado devuelto es verdadero, lo que logra el efecto de deduplicación en la matriz.

            let arr = [1, 2, 3, 4, 5, 1, 2];
            function unique(arr) {
                return arr.filter(function (item, index) {
                    return arr.indexOf(item) === index;
                });
            }
            console.log(unique(arr)); // [1,2,3,4,5]

3. Método array include()

Idea de implementación: primero cree una nueva matriz y luego use un bucle. Antes de enviar cada elemento, use el método include () para determinar si el valor existe en la nueva matriz . De lo contrario, inserte el valor en la matriz.

            let arr = [1, 2, 3, 4, 3, 2, 1];
            function unique(arr) {
                let newArr = [];
                for (let i = 0; i < arr.length; i++) {
                    if (!newArr.includes(arr[i])) {
                        newArr.push(arr[i]);
                    }
                }
                return newArr;
            }
            console.log(unique(arr)); // [1,2,3,4]

4. Método Array indexOf()

Idea de implementación: de hecho, esto es similar al método indexOf, ya que ambos crean una nueva matriz, pero el método para juzgar si el elemento existe en la nueva matriz es diferente. Aquí, al juzgar newArr.indexOf(arr[i]) === -1 , cuando el resultado es verdadero, significa que el valor no existe en la nueva matriz y luego lo inserta en la nueva matriz.

      var arr = [1, 2, 3, 3, 4, 5, 1, 2]
      function unique(arr) {
        let newArr = []
        for (let i = 0; i < arr.length; i++) {
          if (newArr.indexOf(arr[i]) === -1) {
            newArr.push(arr[i])
          }
        }
        return newArr
      }
      console.log(unique(arr))  // [1,2,3,4,5]

5. establecer el método de deduplicación

      var arr = [1, 3, 4, 5, 1, 23, 4, 5]
      // 去重
      function unique(arr) {
        // return [...new Set(arr)]
        return Array.from(new Set(arr))
      }
      console.log(unique(arr)) // [1,3,4,5,1,23]

3. Resumen

Los anteriores son algunos de los métodos más comunes para la deduplicación de arreglos que conozco.El método de deduplicación por conjuntos es relativamente simple y conveniente.

Pueden discutir y aprender juntos en el área de comentarios.

Supongo que te gusta

Origin blog.csdn.net/qq_63299825/article/details/131038200
Recomendado
Clasificación