Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.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 - Fatal编程技术网

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);

  }

});