Javascript 如何使用JS修改对象数组?
我有包含数组对象的数据,有些对象包含如下对象数组: 原件: 我想更改如下所示的对象数组之类的数据 修改:Javascript 如何使用JS修改对象数组?,javascript,Javascript,我有包含数组对象的数据,有些对象包含如下对象数组: 原件: 我想更改如下所示的对象数组之类的数据 修改: 解析数组,然后检查它是否有列表键,如果有,则将列表连接到新数组中,删除列表键并推送元素本身,否则直接推送元素 var parsedData = []; // Iterate through data array data.forEach(function(el) { // If it doesnt have a list key directly push the element
解析数组,然后检查它是否有列表键,如果有,则将列表连接到新数组中,删除列表键并推送元素本身,否则直接推送元素
var parsedData = [];
// Iterate through data array
data.forEach(function(el) {
// If it doesnt have a list key directly push the element
if (!el.hasOwnProperty("lists"))
parsedData.push(el);
// If it has a list key
else {
// Concat the list to the parsedData
parsedData = parsedData.concat(el.lists);
delete el.lists;
// And push current item after deleting the list.
parsedData.push(el);
}
});
实时代码
风险值数据=[{
订单:1,
产品:A,,
项目:A
}, {
订单:1,
产品:B,,
项目:B
},
{
订单:14,
产品:C,,
项目:C,
清单:[{
订单:1,
产品:C1,,
项目:c1
}, {
订单:1,
产品:c2,,
项目:c3
}]
}, {
订单:1,
产品:d,,
项目:d
}, {
订单:72,
产品:e,,
项目:e,
清单:[{
订单:2,
产品:e1,,
项目:e1
}, {
订单:6,
产品:e2,,
项目:e2
}]
}, {
订单:1,
产品:e3,,
项目:e3
}
];
var parsedData=[];
//遍历数据数组
data.foreachel函数{
//如果没有列表键,则直接按下该元素
如果!el.hasownPropertyList
parsedData.pushel;
//如果它有一个列表键
否则{
//将列表连接到parsedData
parsedData=parsedData.concatel.lists;
删除el.lists;
//并在删除列表后推送当前项。
parsedData.pushel;
}
};
document.writeJSON.stringifyparsedData 您可以使用和检查列表,并使用实际值和列表项合并一个新数组,否则使用实际元素
var数据=[{顺序:1,产品:A,项目:A},{顺序:1,产品:B,项目:B},{顺序:14,产品:C,项目:C,列表:[{顺序:1,产品:C1,项目:C1},{顺序:1,项目:c2,项目:c3},{顺序:1,产品:d,项目:d},{顺序:72,产品:e,项目:e,列表:[顺序:2,产品:e1,项目:e1},{顺序:6,产品:e2,项目:e2}]},{订单:1,产品:e3,项目:e3}],
平面=数据还原函数r,a{
返回r.concata.lists&[{order:a.order,product:a.product,item:a.item}].concata.lists | | a;
}, [];
控制台。对数平面;
.as控制台包装{max height:100%!important;top:0;}此代码段可能会对您有所帮助
风险值数据=[{
订单:1,
产品:A,,
项目:A
}, {
订单:1,
产品:B,,
项目:B
},
{
订单:14,
产品:C,,
项目:C,
清单:[{
订单:1,
产品:C1,,
项目:c1
}, {
订单:1,
产品:c2,,
项目:c3
}]
}, {
订单:1,
产品:d,,
项目:d
}, {
订单:72,
产品:e,,
项目:e,
清单:[{
订单:2,
产品:e1,,
项目:e1
}, {
订单:6,
产品:e2,,
项目:e2
}]
}, {
订单:1,
产品:e3,,
项目:e3
}
];
var newObj=[];
data.foreachval函数{
ifval.hasownPropertyList{
var列表=val.lists;
删除val[列表];
newObj.pushval;
lists.forEachfunction valList{
newObj.pushvalList;
};
}否则{
newObj.pushval;
}
};
console.logJSON.stringifynewObj;这可能会帮助您尝试一些东西吗?事实上,JSON主要用于表示一组值,而不是操纵它们。是的,您想要的是可行的,但是在计算层PHP、Ruby、Python中进行所有重新安排并准备好JSON字符串以呈现/呈现会更方便。
[{
"order": 1,
"product": "A",
"item": "A"
}, {
"order": 1,
"product": "B",
"item": "B"
}, {
"order": 14,
"product": "C",
"item": "C"
}, {
"order": 1,
"product": "C1",
"item": "c1"
}, {
"order": 1,
"product": "c2",
"item": "c3"
}, {
"order": 1,
"product": "d",
"item": "d"
}, {
"order": 72,
"product": "e",
"item": "e"
}, {
"order": 2,
"product": "e1",
"item": "e1"
}, {
"order": 6,
"product": "e2",
"item": "e2"
}, {
"order": 1,
"product": "e3",
"item": "e3"
}]
var parsedData = [];
// Iterate through data array
data.forEach(function(el) {
// If it doesnt have a list key directly push the element
if (!el.hasOwnProperty("lists"))
parsedData.push(el);
// If it has a list key
else {
// Concat the list to the parsedData
parsedData = parsedData.concat(el.lists);
delete el.lists;
// And push current item after deleting the list.
parsedData.push(el);
}
});