Estoy leyendo este artículo de Medium sobre programación funcional y veo una sintaxis con la que no estoy familiarizado. ¿Se pregunta si alguien puede arrojar algo de luz? Casi parece como si el autor estuviera desestructurando toda la matriz en un objeto, pero no creo que eso sea posible para uno, y para dos, no estoy seguro de qué propósito tendría en esta función... ¿Alguien ¿Sabes qué está pasando aquí exactamente?
const reduce = (reducer, initial, arr) => { // shared stuff let acc = initial; for (let i = 0, { length } = arr; i < length; i++) {//<-- {length} = arr ?? // unique stuff in reducer() call acc = reducer(acc, arr[i]); // more shared stuff } return acc; }; reduce((acc, curr) => acc + curr, 0, [1,2,3]); // 6
Array tendrá una longitud como propiedad const x = [1,2,3]; console.log(x.length); // logs 3
Y puedes desestructurar el objeto como a continuación
constante obj = {a: 1, b: 2}; constante {a, b} = obj; consola.log(a, b); // registros 1,2
Puede declarar nuevas variables con comas, comenzando con as var, let, const.
'y' también es una variable let debajo
let x = 0, y = 1; console.log(x, y) // logs 0, 1
let i = 0, { length } = arr;
se explica como arr es una matriz donde tiene la longitud como propiedad.
sea i = 0, {longitud} = arr; // escrito en forma abreviada para declarar la variable
Se puede escribir como
let i = 0; let {length} = arr;
Si desea desestructurar una matriz, no usará {}
sino que usará []
constante arr = [1,2,3,4,5]; constante [a, b, ...c] = arr; console.log(a, b, c) // registra 1, 2, [3,4,5]
Espero que esté claro ahora