我只是在寻找将以下数组转换为以下对象格式的最简洁方法。非常感谢。
const item = [
{ address: '123 fake street' },
{ loan: 'no' },
{ property: 'no' }
]
const obj = {
address: '123 fake street',
loan: 'no',
property: 'no'
}
我只是在寻找将以下数组转换为以下对象格式的最简洁方法。非常感谢。
const item = [
{ address: '123 fake street' },
{ loan: 'no' },
{ property: 'no' }
]
const obj = {
address: '123 fake street',
loan: 'no',
property: 'no'
}
const item = [
{ address: '123 fake street' },
{ loan: 'no' },
{ property: 'no' }
]
const obj = Object.assign({}, ...item);
console.log(obj);
只需使用简单的 for...of
循环遍历数组,使用 Object.entries
提取键/值对。然后,只需使用该信息更新空对象即可。
const item = [
{ address: '123 fake street' },
{ loan: 'no' },
{ property: 'no' }
];
const obj = {};
for (const el of item) {
const [[key, value]] = Object.entries(el);
obj[key] = value;
}
console.log(obj);
附加文档
const arr = [{key:"address", value:"123 fake street"},{key:"loan", value:"no"},{key:"property", value:"no"}];
const object = arr.reduce(
(obj, item) => Object.assign(obj, { [item.key]: item.value }), {});
console.log(object)
另一种解决方案,速度提高了99%(经jsperf测试)
const object = arr.reduce((obj, item) => (obj[item.key] = item.value, obj) ,{});
更简单的解决方案
// original
const arr = [
{key:"address", value:"123 fake street"},
{key:"loan", value:"no"},
{key:"property", value:"no"}
];
//convert
const result = {};
for (var i = 0; i < arr.length; i++) {
result[arr[i].key] = arr[i].value;
}
console.log(result);