apply()
para calcular el valor máximo en una matriz: var arr = [6, 89, 3, 45];Tuvimos que usar
var maximus = Math.max.apply (null, arr); // devuelve 89
Math.max.apply(null, arr)
porque Math.max(arr)
devuelve NaN
. Math.max()
espera argumentos separados por comas, pero no una matriz. El operador de difusión hace que esta sintaxis sea mucho mejor para leer y mantener. const arr = [6, 89, 3, 45];
const maximus = Math.max (... arr); // devuelve 89
...arr
devuelve una matriz desempaquetada. En otras palabras, se propaga la matriz. Sin embargo, el operador de difusión solo funciona en el lugar, como en un argumento a una función o en un literal de matriz. El siguiente código no funcionará: const extendió = ... arr; // lanzará un error de sintaxis
arr1
en otra matriz arr2
utilizando el operador de propagación. arr2
es la copia correcta de arr1
.
testString: 'assert(arr2.every((v, i) => v === arr1[i]), "arr2
is correct copy of arr1
.");'
- text: ...
se usó el operador spread para duplicar arr1
.
testString: 'getUserInput => assert(getUserInput("index").match(/\[\s*...arr1\s*\]/g),"...
spread operator was used to duplicate arr1
.");'
- text: arr2
permanece sin cambios cuando se cambia arr1
.
testString: 'assert((arr1, arr2) => {arr1.push("JUN"); return arr2.length < arr1.length},"arr2
remains unchanged when arr1
is changed.");'
```