Método de procesamiento de matriz de objetos JS método de reducción

 método reduce ()

1. Este método recibe una función como acumulador, y cada valor de la matriz (de izquierda a derecha) se reduce y finalmente se calcula como un valor;

2. Este método se puede utilizar como una función de orden superior para componer la función.

Nota

Este método no ejecutará la función de devolución de llamada para matrices vacías.

gramática

array.reduce (función (total, currentValue, currentIndex, arr), initialValue)
parámetro descripción
función, total, valor actual, índice, arr,

Requerido, usado para ejecutar la función de cada elemento de la matriz.

parámetro descripción
total Requerido. Valor inicial o valor de retorno después del cálculo
valor actual Requerido, elemento actual
currentIndex Opcional. El índice del elemento actual
arr Opcional. El objeto de matriz al que pertenece el elemento actual
valor inicial Opcional, el valor inicial pasado a la función

 

 

 

 

 

 

 

 

 

Si no se establece el valor inicial, el ciclo comenzará en el índice cero.

Aplicación práctica (1)

官方案例-累加计算

function getSum(total, num) {
  
    
     return total + num;

}
[65, 44, 12, 4].reduce(getSum)

//没有设置初始值,循环从数组索引为零开始执行。

Aplicación práctica (dos)

 //判断数组是否连续
  let a1rr = [3, 4, 4, 6, 7, 8, 9, 10, 11];
  function getContinueFun2(arr) {
           let ress = arr.reduce((flag, cur, ind, arr) => {
            arr[ind + 1] - cur == 1 ? flag++ : ''
              return flag;
       }, 0);
      return ress == arr.length - 1
  }
  getContinueFun2(a1rr)

 

Aplicación práctica (3)

//每个值出现次数都为一。如果是返回true,否则返回false。

  function getUniNum(arr) {
           let obj = arr.reduce((obj, curr, i, arr) => {
                obj[curr] ?  obj[curr]++ : obj[curr] = 1;
                return obj
            }, {});
            return Object.values(obj).length === arr.length
  }
  getUniNum([1,'name',2,4,3,'name'])

Novato, bienvenido a discutir.

Supongo que te gusta

Origin blog.csdn.net/qq_40010841/article/details/113882693
Recomendado
Clasificación