Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 格式化动态json数组_Javascript_Angularjs_Json - Fatal编程技术网

Javascript 格式化动态json数组

Javascript 格式化动态json数组,javascript,angularjs,json,Javascript,Angularjs,Json,我有一个json数组,如下所示: Maindata=[ {"name":"string1"}, {"name":"string2"}, {"name":"string3"} ]; 我需要的是以下类型的数组: data=[ { "name":"string1", "name":"string2", "name":"string3" } ]; 有谁能帮我从原始数组中获取所需json的方法吗。 (注意:maindata是动态形成的json数组,这就是为什么

我有一个json数组,如下所示:

Maindata=[
  {"name":"string1"},
  {"name":"string2"},
  {"name":"string3"}
 ];
我需要的是以下类型的数组:

data=[
  {
   "name":"string1",
   "name":"string2",
   "name":"string3"
  }
 ];
有谁能帮我从原始数组中获取所需json的方法吗。 (注意:maindata是动态形成的json数组,这就是为什么它的结构是这样的)

提前感谢

您可以使用或迭代
Maindata
对象的项,对于每个项,您可以迭代其键(使用),并将数据分组到新结构中。(请参阅下面的代码片段)

使用Array.forEach的解决方案

var主数据=[
{“name1”:“string1”},
{“name2”:“string2”},
{“name3”:“string3”}
];
var result={};
var newMaindata=[];
Maindata.forEach(功能(el){
Object.keys(el).forEach(函数(key){
结果[键]=el[键];
});
});
newMaindata.push(结果);
console.log(newMaindata)
您可以使用或迭代
Maindata
对象的项,对于每个项,您可以迭代其键(使用),并将数据分组到新结构中。(请参阅下面的代码片段)

使用Array.forEach的解决方案

var主数据=[
{“name1”:“string1”},
{“name2”:“string2”},
{“name3”:“string3”}
];
var result={};
var newMaindata=[];
Maindata.forEach(功能(el){
Object.keys(el).forEach(函数(key){
结果[键]=el[键];
});
});
newMaindata.push(结果);
console.log(newMaindata)您可以使用并扩展数组元素

var数组=[{name1:string1},{name2:string2},{name3:string3}],
object=object.assign({},…数组);
console.log(对象)您可以使用并扩展数组元素

var数组=[{name1:string1},{name2:string2},{name3:string3}],
object=object.assign({},…数组);
console.log(对象)使用,您可以执行以下操作

var Maindata=[{
“名称1”:“字符串”
}, {
“名称2”:“字符串”
}, {
“名称3”:“字符串”
}];
var finalObj=Maindata.reduce((acc,cur)=>{
分配对象(acc、cur);
返回acc;
}, {})
console.log(finalObj)使用,您可以执行以下操作

var Maindata=[{
“名称1”:“字符串”
}, {
“名称2”:“字符串”
}, {
“名称3”:“字符串”
}];
var finalObj=Maindata.reduce((acc,cur)=>{
分配对象(acc、cur);
返回acc;
}, {})

console.log(finalObj)我认为您想要的输出不是有效的对象为什么数据不是
对象
?为什么会有一个
数组
?您的第二个JSON不是有效的JSON,因为对象不能有重复的名称。正如我所说,main数据是通过创建html元素动态获取的。例如单击按钮以添加文本框。所以每个元素的键保持不变。每个对象的值字符串都不同。请查看我更新的问题,jsonI不认为您想要的输出是有效的对象。为什么数据不是
对象?为什么会有一个
数组
?您的第二个JSON不是有效的JSON,因为对象不能有重复的名称。正如我所说,main数据是通过创建html元素动态获取的。例如单击按钮以添加文本框。所以每个元素的键保持不变。每个问题的值字符串都不同。请查看我更新的问题,如果名称和字符串每次都是唯一的,则jsonits有效,正如您的答案所示。但在我的例子中,“name”在每个元素上保持不变,所以它只返回最后一个元素。你能更新你的答案吗。谢谢,一个对象不能有两个相同名称的属性。如果名称和字符串每次都是唯一的,那么它就会起作用。但在我的例子中,“name”在每个元素上保持不变,所以它只返回最后一个元素。你能更新你的答案吗。谢谢,一个对象不能有两个同名属性。