Necesito crear una nueva clave/valor de objeto. En él, necesito los valores del objeto clave/valor ya existente y necesito agregar valores que solo están en la matriz.
La matriz:
[{ name: "Computer", name: "Car", name: "House", name: "Flower"}]La clave/valor del objeto:
{ computer: { title: 'Computer', color: 'Black' }, house: { title: 'House', color: 'Red' }}Entonces, en este caso, el nuevo objeto debería ser:
{ computer: { title: 'Computer', color: 'Black' }, car: { title: 'Car', color:'' }, house: { title: 'House', color: 'Red' }, flower: { title: 'Flower', color:'' } }¿Cuál es la forma más fácil de lograr esto? Estaba pensando en recorrer la matriz, comparar los valores entre ellos y extraer los que se repiten, pero no estoy seguro de cómo hacerlo.
Supuse que esa primera matriz estaba destinada a ser una matriz de objetos individuales, cada uno con una clave de 'name' como en la matriz arr .
const arr = [ {name: "Computer"}, {name: "Car"}, {name: "House"}, {name: "Flower"}]; const objVal = { computer: { title: 'Computer', color: 'Black' }, house: { title: 'House', color: 'Red' } }; const expected = { computer: { title: 'Computer', color: 'Black' }, car: { title: 'Car', color:'' }, house: { title: 'House', color: 'Red' }, flower: { title: 'Flower', color:'' } } let returnObj = {}; arr.forEach((element) => { const name = element.name; if (objVal[name.toLowerCase()]) { returnObj[name.toLowerCase()] = objVal[name.toLowerCase()]; } else { returnObj[name.toLowerCase()] = { title: name, color: '' } } }); console.log(returnObj);