#javascript #arrays #object
Вопрос:
У меня есть два массива
keys:[key0, key1, key2, key3]
и
body:[['jake', 24, 3, true], ['susan', 21, 0, true]]
результат, который мне нужен, это
[{key0:jake, key1:24, key2:3, key3:true}, {key0:susan, key1:21, key2:0, key3:true}]
Ответ №1:
Сопоставьте ключи и значения с массивами пар [key, value]
, а затем преобразуйте их в объект с помощью Object.fromEntries()
(см. zipObject
Функцию).
Чтобы преобразовать массив значений, используйте Array.map()
с 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)
Ответ №2:
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)
Ответ №3:
Это может быть один из простых способов сделать это, используя легко читаемые циклы:
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);
Результат:
[
{ key0: 'jake', key1: 24, key2: 3, key3: true },
{ key0: 'susan', key1: 21, key2: 0, key3: true }
]