Estoy tratando de desestructurar una tupla:
tuple = [[1,"word",3,4,5],[1,"hello",3,4,5],[1,"word",3,4,5]]
Al igual que:
let destruct = [item1, item2, item3, item4, item5] = [tuple]
Pero todo se asigna al item1
de la tupla. ¿Es posible mapear realmente cada matriz de la tupla a los 5 elementos de la segunda matriz?
Rendimiento esperado:
item2[0] = "word", item2[1] = "hello
EDITAR: alguien respondió con un tuples.map que obtuvo el resultado deseado, pero ¿se eliminó la respuesta? Además, ¿es posible una solución destructora pura?
Use un map()
, obtenga el índice del primero, luego utilícelo para crear cada 'columna':
const [ ] = tuple[0].map((_, i) => tuple.map((_, j) => tuple[j][i]))
const tuple = [[1,"word",3,4,5],[1,"hello",3,4,5],[1,"word",3,4,5]]; const [ item1, item2, item3, item4, item5 ] = tuple[0].map((_, i) => tuple.map((_, j) => tuple[j][i])); console.log(item2[0], item2[1]); // word hello console.log(item4); // [ 4, 4, 4 ]
Tiene corchetes adicionales alrededor de la tupla, intente esto
const tuple = [[1,"word",3,4,5],[2,"word",3,4,5],[3,"word",3,4,5]] const [item1, item2, item3, item4, item5] = tuple console.log(item3)
puedes desestructurar cualquier matriz u objeto en javascript
let tuple = [[1,"word",3,4,5],[1,"word",3,4,5],[1,"word",3,4,5]] let [item1, item2, item3] = tuple
incluso puede obtener el valor anidado de la siguiente manera
let [item1, [one, word, three], item3] = tuple; console.log(one) // 1 console.log(word) // 'word' console.log(three) // 3