【发布时间】:2020-12-21 03:06:15
【问题描述】:
我有 [ { key1:value1, key2:value2 }, { key3:value3, key4:value4 }, .... ]。我想把它转换成 { value1: value2, value3: value4 }
【问题讨论】:
-
感谢不知道 Array.reduce 和 Object.values
标签: javascript arrays object
我有 [ { key1:value1, key2:value2 }, { key3:value3, key4:value4 }, .... ]。我想把它转换成 { value1: value2, value3: value4 }
【问题讨论】:
标签: javascript arrays object
使用Array#reduce 来积累您的对象数据。 Foreach 对象从第一个值中获取值,并将具有此名称的新属性添加到具有来自第二个对象值的值的累积对象中。
let array = [ { key1:'value1', key2:'value2' }, { key3:'value3', key4:'value4' }];
let res = array.reduce((acc, cur) => {
values = Object.values(cur);
acc[values[0]] = values[1];
return acc;
}, {});
console.log(res);
【讨论】:
假设内部对象总是有 2 个键:
const arr = [ { key1:'value1', key2:'value2' }, { key3:'value3', key4:'value4' }]
const obj = {};
for (const innerObj of arr) {
const values = Object.values(innerObj);
obj[values[0]] = values[1];
}
console.log(obj) // { value1: 'value2', value3: 'value4' }
注意:您的问题假设内部对象中键的顺序,但这可能无法保证
【讨论】: