我有一个json数组如下:
Maindata=[
{"name":"string1"},
{"name":"string2"},
{"name":"string3"}
];
我需要的是以下类型的数组:
data=[
{
"name":"string1",
"name":"string2",
"name":"string3"
}
];
任何人都可以通过一些方法帮助我从原始数组中获取所需的json。 (注意:maindata是动态形成的json数组,这就是为什么它的结构是这样的)
提前致谢
答案 0 :(得分:2)
您可以使用Object.assign
并传播数组元素。
var array = [{ name1: "string1" }, { name2: "string2" }, { name3: "string3" }],
object = Object.assign({}, ...array);
console.log(object);
答案 1 :(得分:0)
您可以使用Array.forEach或Array.reduce来迭代Maindata
对象的项目以及您可以迭代其键(使用Object.keys)和组的每个项目将数据转换为新结构。(见下面的代码片段)
使用Array.forEach的解决方案
var Maindata=[
{"name1":"string1"},
{"name2":"string2"},
{"name3":"string3"}
];
var result = {};
var newMaindata=[];
Maindata.forEach(function(el){
Object.keys(el).forEach(function(key){
result[key]=el[key];
});
});
newMaindata.push(result);
console.log(newMaindata);
使用Array.reduce的解决方案
var Maindata = [{
"name1": "string1"
}, {
"name2": "string2"
}, {
"name3": "string3"
}];
var result ;
var newMaindata = [];
result = Maindata.reduce(function(acc,el) {
Object.keys(el).forEach(function(key) {
acc[key] = el[key];
});
return acc;
},{});
newMaindata.push(result);
console.log(newMaindata);
答案 2 :(得分:0)
使用reduce,您可以执行以下操作
var Maindata = [{
"name1": "string"
}, {
"name2": "string"
}, {
"name3": "string"
}];
var finalObj = Maindata.reduce((acc, cur) => {
Object.assign(acc, cur);
return acc;
}, {})
console.log(finalObj);