格式化动态JSON数组



我的json数组如下:

Maindata=[
  {"name":"string1"},
  {"name":"string2"},
  {"name":"string3"}
 ];

我需要的是以下类型的数组:

data=[
  {
   "name":"string1",
   "name":"string2",
   "name":"string3"
  }
 ];

任何人都可以帮助我一些方法从原始数组中获取所需的JSON。(注意:Maindata是JSON数组,动态形成了它的结构是这样的原因)

预先感谢

您可以使用 Object.assign并传播数组元素。

var array = [{ name1: "string1" }, { name2: "string2" }, { name3: "string3" }],
    object = Object.assign({}, ...array);
    
console.log(object);

与降低一样,您可以喜欢

    var Maindata = [{
      "name1": "string"
    }, {
      "name2": "string"
    }, {
      "name3": "string"
    }];
    var finalObj = Maindata.reduce((acc, cur) => {
      Object.assign(acc, cur);
      return acc;
    }, {})
    console.log(finalObj);

您可以使用array.foreach或array.dray.dray.duce迭代Maindata对象的项目,并且对于每个项目,您可以通过其键(使用对象.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.duce

解决方案

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);

最新更新