Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.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 合并父对象具有可变键名称的js对象_Javascript_Arrays - Fatal编程技术网

Javascript 合并父对象具有可变键名称的js对象

Javascript 合并父对象具有可变键名称的js对象,javascript,arrays,Javascript,Arrays,我有一个具有以下结构的对象: mymain = { name1: [ {key1: number, key2: "string"},{key1: number, key2: "string"} ], name2: [ {key1: number, key2: "string"},{key1: number, key2: "string"} ], name3: [ {key1: number, key2: "string"},{key1: number, key2: "string"} ] }

我有一个具有以下结构的对象:

mymain = { 
name1: [ {key1: number, key2: "string"},{key1: number, key2: "string"} ],
name2: [ {key1: number, key2: "string"},{key1: number, key2: "string"} ],
name3: [ {key1: number, key2: "string"},{key1: number, key2: "string"} ]
}
顶级项目(name1、name2、name3)的数量和关键字名称会有所不同

我想将这些名称下的所有对象(其数量和值也是可变的,但都具有相同的键结构)合并为一个大对象,如下所示:

Allconcat = [{key1: number, key2: "string"},{key1: number, key2: "string"},{key1: number, key2: "string"},{key1: number, key2: "string"},{key1: number, key2: "string"},{key1: number, key2: "string"}]

我曾尝试提取顶级项目的名称,并将它们循环以连接对象,但结果显示项目数量错误:

var names = Object.keys(mymain)
    var firstname = names[0]
    names.shift() // should remove first item
    var firstObj = mymain[firstname] // name1 object
    var Allconcat
    console.log(firstObj) // correctly shows name1 with 2 keys
    for (var r = 0, rlen = names.length; r < rlen; r++) {
      Allconcat = firstObj.concat(mymain[names[r]])
    }
    console.log(Allconcat) // shows 4 objects, missing 2 in the middle, first and last are there
var name=Object.keys(mymain)
var firstname=名称[0]
name.shift()//应删除第一项
var firstObj=mymain[firstname]//name1对象
阿尔康卡特变种
console.log(firstObj)//正确显示带有2个键的name1
for(var r=0,rlen=names.length;r

移位或不移位没有区别,我总是在中间缺少一些元素。

< P>一个选项是取<代码>对象。<代码> MyMeun[/Cord]对象的值< /代码>,并使数组扁平化:

constmymain={
name1:[{key1:'number',key2:'string},{key1:'number',key2:'string}],
名称2:[{key1:'number',key2:'string},{key1:'number',key2:'string}],
name3:[{key1:'number',key2:'string},{key1:'number',key2:'string}]
};
const Allconcat=Object.values(mymain.flat();
console.log(Allconcat)