有什么方法可以将对象列表转换为现在属性为值的新列表。我曾尝试使用Object.keys()
和Object.values()
制作两个单独的列表,然后尝试将它们组合在一起,但并没有成功。
我想转身:
[{ip: 123, name: "bob"}]
进入:
[{property: "ip", value: 123}, {property: "name", value: "bob"}]
我该如何解决这个问题?
答案 0 :(得分:1)
您可以使用即将到来的Array#flatMap
并获取对象的条目。
var data = [{ ip: 123, name: "bob" }],
result = data.flatMap(o => Object.entries(o).map(([property, value]) => ({ property, value })));
console.log(result);
使用Array#reduce
的传统方法。
var data = [{ ip: 123, name: "bob" }],
result = data.reduce((r, o) => [
...r,
...Object.entries(o).map(([property, value]) => ({ property, value }))
], []);
console.log(result);
答案 1 :(得分:0)
我只是做一个for循环,遍历数组,然后将这些新对象推入新数组中。
以下代码可以解决您的问题:
const array1 = [{ ip: 123, name: 'bob' }];
let newArray;
for (let i = 0; i < array1.length; i++) {
newArray.push({
property: 'ip',
value: array1[i].value
});
newArray.push({
property: 'name',
value: array1[i].name
});
}