En JavaScript, se puede acceder a los valores de la matriz usando esta sintaxis...
const arr = ["one", "two", "three"]; console.log(arr[0]); // "one"...o usando una función definida que devuelve un número para lograr el mismo resultado:
const arr = ["one", "two", "three"]; const fn = () => 0; console.log(arr[fn()]); // "one" Puede que esté loco, pero simplemente no entiendo por qué exactamente lo mismo no funciona cuando se usa una expresión de función anónima. ¿No termino claramente con 0 como evaluador de posición de índice de matriz?
const arr = ["one", "two", "three"]; console.log(arr[() => 0]); // undefined() => 0 devuelve una función, no el valor devuelto cuando se llama.
En su lugar, debe invocar la función:
const arr = ["one", "two", "three"]; console.log(arr[(() => 0)()]);La principal diferencia es sobre el concepto de una función anónima.
const arr = ["one", "two", "three"]; const fn = () => 0; console.log(arr[fn()]);Aquí está asignando una función anónima a la constante fn y está invocando esta función devolviendo un 0 en el índice.
En su último ejemplo, solo está asignando la función sin invocar la función, por eso devuelve lo indefinido.
Si desea invocar automáticamente una función anónima, solo necesita llamarla así:
(() =>0)() // check the last pair of parentheses