Estoy tratando de devolver una matriz de objetos de una matriz. Así por ejemplo. Tengo una serie de cadenas:
const strArr = ["Some", "Thing"];Y necesito devolver un Array con 2 objetos para cada posición de strArr, por ejemplo:
result: [{first_key: "Some"}, {second_key: "Some"}, {first_key: "Thing"}, {second_key: "Thing"}] He hecho esto, que funciona, pero prefiero trabajar sin let :
const numeros = ["some", 'thing'] let arr = []; numeros.map(valor => { const titleContains = { title_contains: valor, } const bodyContains = { body_contains: valor, } arr.push(titleContains); arr.push(bodyContains); }); console.log(arr) Este código me da el resultado correcto, aunque el mapa se está usando mal y tengo que usar un let que no quiero.
Podría tomar Array#flatMap y devolver dos objetos para cada valor.
const data = ["Some", "Thing"], result = data.flatMap(valor => [{ first_key: valor }, { second_key: valor }]); console.log(result); .as-console-wrapper { max-height: 100% !important; top: 0; }Aquí hay una versión con una reducción, puedes leer más sobre esto aquí :)
const numeros = ["some", 'thing'] const arr = numeros.reduce((acc, valor) => { const titleContains = { title_contains: valor, } const bodyContains = { body_contains: valor, } acc.push(titleContains); acc.push(bodyContains); return acc; }, []); // <==== note an empty array here. console.log(arr)