我有一个带有键-值对的对象数组,如何通过删除键将其简化为单个对象,从而将其转换为对象。我尝试过使用地图过滤器reduce,但是无法获得理想的结果。请帮助
const object = Object.assign({}, ...obj); // not working
const result = {};
Object.keys(object).forEach((key, index) => {
result[`newObj${index + 1}`] = obj[key].map(item => ({[key]: item}));
}); // not working
输入
obj = [{key: name, value: jack},{key: age, value: 10},{key: country, value: india},{key: state, value: Delhi}];
输出
{name:jack, age:10, country:india, state: Delhi}
答案 0 :(得分:2)
使用forEach
并进行销毁
更新:根据Jan指出的问题已修复。谢谢@Jan
obj = [
{ key: "name", value: "jack" },
{ key: "age", value: 10 },
{ key: "country", value: "india" },
{ key: "state", value: "Delhi" },
];
const res = {};
obj.forEach(({ key, value }) => Object.assign(res, { [key]: value }));
console.log(res);
或者,使用Object.fromEntries
和map
obj = [
{ key: "name", value: "jack" },
{ key: "age", value: 10 },
{ key: "country", value: "india" },
{ key: "state", value: "Delhi" },
];
const res = Object.fromEntries(obj.map(Object.values));
console.log(res);
答案 1 :(得分:1)
var obj=[{key: "name", value: "jack"},{key: "age", value: 10},{key: "country", value: "india"},{key: "state", value: "Delhi"}]
var myObj={};
for (var item of obj){
myObj[item.key]=item.value
}
console.log(myObj)
将输出
{name: "jack", age: 10, country: "india", state: "Delhi"}
答案 2 :(得分:1)
您可以为此使用reduce
var input = [
{key: "name", value: "jack"},
{key: "age", value: 10},
{key: "country", value: "India"},
{key: "state", value: "Delhi"},
]
var output = input.reduce((r,{key,value}) => ({[key]:value,...r}),{})
console.log(output)
输出
{ state: 'Delhi', country: 'India', age: 10, name: 'jack' }
解决方案使用
{key,value}
{...r}
{[key]:value}
答案 3 :(得分:0)
我认为您想要这样...
var obj = [
{key: "name", value: "jack"},
{key: "age", value: 10},
{key: "country", value: "india"},
{key: "state", value: "Delhi"}
];
let tempObject = {};
for (let c of obj) {
tempObject[c.key]= c.value;
}
console.log(tempObject);