Tengo una variedad de categorías de alimentos y quiero emparejar cada categoría con una lista de códigos de productos que se encuentran en una variedad de matrices.
const categories = [ "dairy", "fruit", "breakfast", "frozen" ]; const codes = [['2340', '89878', '9998'], ['89878'], ['987979', '984', '29898', '299'], ['0008', '2988'}]las categorías y los códigos tienen 10 elementos cada uno. ¿Cómo puedo terminar con...
const onSale = {dairy:['2340', '89878', '9998'], fruit: ['89878'], breakfast:['987979', '984', '29898', '299'] , frozen: ['0008', '2988'}Soy un novato, así que Prefiero Vanilla JS.
Puede usar el segundo parámetro pasado a la función de mapa para saber en qué índice se encuentra este elemento. Luego extraiga el índice coincidente de la otra matriz. Como desea un objeto resultante, use fromEntries para envolver la matriz que resulta del mapa.
const categories = [ "dairy", "fruit", "breakfast", "frozen" ]; const codes = [['2340', '89878', '9998'], ['89878'], ['987979', '984', '29898', '299'], ['0008', '2988']]; const onSale = Object.fromEntries( categories.map((cat, i) => [cat, codes[i]]) ); console.log(onSale)Puedes hacerlo mediante el método de reduce , así:
const categories = [ "dairy", "fruit", "breakfast", "frozen" ]; const codes = [['2340', '89878', '9998'], ['89878'], ['987979', '984', '29898', '299'], ['0008', '2988']] const onSales = categories.reduce((acc, key, index)=> { acc[key] = codes[index]; return acc; }, {}); console.log(onSales)