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)代码>