Tengo una matriz de objetos con las mismas claves, ejemplo:
const data = [{name: "firstName", value: "John"}, {name: "lastName", value: "Smith"}, {name: "Number", value: "421-8686"} ]Sin embargo, quiero que los valores se conviertan en la clave y los valores. ejemplo:
const data = [{"firstName": "John"}, {"lastName": "Smith"}, {"Number": "421-8686"}]Probé algunos métodos, pero por alguna razón u otra fallé. Mi último intento es:
let newData = {} arrayData.forEach((item, index) => { let key = data.name let value = data.value newData[index] = { key: value} // this results in {"key": "John"} --> but i want {"firstName": "John"}});
const data = [{name: "firstName", value: "John"}, {name: "lastName", value: "Smith"}, {name: "Number", value: "421-8686"} ] /*const data = [{"firstName": "John"}, {"lastName": "Smith"}, {"Number": "421-8686"}] */ for(let i = 0;i < data.length;i++){ data[i][data[i].name] = data[i].value // creates new key value pair delete data[i].name // deletes old key delete data[i].value } console.log(data)Puede usar Object.fromEntries .
let data = [ {name: "firstName", value: "John"}, {name: "lastName", value: "Smith"}, {name: "Number", value: "421-8686"} ] data = data.map(info => Object.fromEntries([[info.name, info.value]])) console.log(data)Creo que deberías obtener el siguiente resultado, lo que quieres. Por supuesto, confirmé el estado.
const data = [{name: "firstName", value: "John"}, {name: "lastName", value: "Smith"}, {name: "Number", value: "421-8686"} ] let newData = []; data.forEach((item) => { let obj = {}; obj[item.name] = item.value; newData.push( obj ); }); console.log(newData);Gracias.