如何根据数组属性的索引拆分和合并 javascript 对象。
我有这样的字段。
var myFields = {
Country: "USA",
State: "DC",
Cataogry: ["Value1", "Value2"],
Level: ["Level1", "Level2"]
};
我想像这样从这里导出两个。输出:-
var fields = [
{ Country: "USA", State: "DC", Cataogry: "Value1", Level: "Level1" },
{ Country: "USA", State: "DC", Cataogry: "Value2", Level: "Level2" }
];
所以当我使用我的代码时,我得到了 4 个数组而不是两个。任何人都可以帮助我如何合并索引。
这是我尝试过的:
var myObj = {};
for (var i = 0; i < fields.length; i++) {
myObj[fields[i].key] = fields[i].Value;
}
var myObjList = [];
var listFlag = false;
Object.keys(myObj).forEach(function(key) {
if (Array.isArray(myObj[key])) {
listFlag = true;
myObj[key].forEach(function(el) {
var objCopy = JSON.parse(JSON.stringify(myObj));
objCopy[key] = el;
myObjList.push(objCopy);
});
}
});
if (!listFlag) {
myObjList.push(myObj);
}
最佳答案
你可以使用 map
方法。
var myFields = {
"Country" : "USA",
"State" : "DC",
"Cataogry" : ["Value1","Value2"],
"Level" : ["Level1","Level2"]
}
var fields = myFields.Cataogry.map((item, index) => ({
Country : myFields.Country,
State : myFields.State,
Cataogry: myFields.Cataogry[index],
Level : myFields.Level[index]
} ));
console.log(fields);
关于javascript - 如何根据数组属性的索引拆分和合并javascript对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62661125/