tengo dos matrices
keys:[key0, key1, key2, key3]y
body:[['jake', 24, 3, true], ['susan', 21, 0, true]]el resultado que necesito es
[{key0:jake, key1:24, key2:3, key3:true}, {key0:susan, key1:21, key2:0, key3:true}]Asigne las claves y los valores a una matriz de pares de [key, value] y luego conviértalos en un objeto usando Object.fromEntries() (vea la función zipObject ).
Para convertir una matriz de valores, use Array.map() con zipObject :
const zipObject = keys => values => Object.fromEntries(keys.map((key, i) => [key, values[i]])) const keys = ['key0', 'key1', 'key2', 'key3'] const values = [['jake', 24, 3, true], ['susan', 21, 0, true]] const result = values.map(zipObject(keys)) console.log(result)const body = [['jake', 24, 3, true], ['susan', 21, 0, true]]; const keys = ['key0', 'key1', 'key2', 'key3'] let newArray = []; numbers.forEach((value) => { let obj={}; keys.forEach((key,index) => { obj[`${key}`] = value[index]; }) newArray.push(obj); }); console.log(newArray)Esta puede ser una forma simple de hacer esto, usando bucles fáciles de leer:
const keys = ['key0', 'key1', 'key2', 'key3']; const body = [['jake', 24, 3, true], ['susan', 21, 0, true]]; const result = []; for (let b of body) { const obj = {}; for (let i = 0; i < b.length; i++) { obj[keys[i]] = b[i]; } result.push(obj); } console.log(result);Resultado:
[ { key0: 'jake', key1: 24, key2: 3, key3: true }, { key0: 'susan', key1: 21, key2: 0, key3: true } ]