【问题标题】:Combine arrays inside object组合对象内的数组
【发布时间】:2023-02-02 18:17:59
【问题描述】:

所以我有一个 javascript 代码,它将数组中的订单合并为 1。

function mergeOrder(data) {
  // write your code here
  let result = [];
  for (let i = 0; i < data.length; i++) {
    for (let j = 0; j < data[i].orders.length; j++) {
      result.push(data[i].orders);  
      break;
    }
  }
  return result;
}

console.log(
  mergeOrder([  
    {
      restaurant: "MekDun",
      orders: [
        ["Burger", 200],
        ["Kentang", 130],
        ["CocaCola", 400],
        ["IceCream", 186],
      ],
      reviewers: 140,
    },

    {
      restaurant: "Lawmore",
      orders: [
        ["Ayam", 126],
        ["CocaCola", 206],
        ["Burger", 368],
        ["IceCream", 80],
      ],
      reviewers: 260,
    },

    {
      restaurant: "Burger Queen",
      orders: [
        ["Ayam", 85],
        ["CocaCola", 150],
        ["Burger", 450],
        ["Kentang", 20],
      ],
      reviewers: 80,
    },
  ])
);

我如何将输出转换为基本上将数组组合成 1 而不是获取每个数组的输出

[
 [
   'Burger',   200,
   'Kentang',  130,
   'CocaCola', 400,
   'IceCream', 186
 ],
 [
   'Ayam',     126,
   'CocaCola', 206,
   'Burger',   368,
   'IceCream', 80
 ],
 [ 'Ayam', 85, 'CocaCola', 150, 'Burger', 450, 'Kentang', 20 ],
]

我尝试更改结果推送或将另一个用于获取订单对象,但这就是我的输出结果。我什至尝试放置随机的东西,比如添加另一个或一个一个地抓取,但它不起作用。我不允许使用其他函数,如 concat() 或 flatten()。
这是我得到的唯一输出,也是我现在能做的

[
[
[ 'Burger', 200 ],
[ 'Kentang', 130 ],
[ 'CocaCola', 400 ],
[ 'IceCream', 186 ]
  ],
[
[ 'Ayam', 126 ],
[ 'CocaCola', 206 ],
[ 'Burger', 368 ],
[ 'IceCream', 80 ]
  ],
[
[ 'Ayam', 85 ],
[ 'CocaCola', 150 ],
[ 'Burger', 450 ],
[ 'Kentang', 20 ]
  ]
]

【问题讨论】:

    标签: javascript multidimensional-array


    【解决方案1】:

    您可以映射错误命令。

    function mergeOrder(data) {
        return data.map(({ orders }) => orders.flat());
    }
    
    console.log(
      mergeOrder([  
        {
          restaurant: "MekDun",
          orders: [
            ["Burger", 200],
            ["Kentang", 130],
            ["CocaCola", 400],
            ["IceCream", 186],
          ],
          reviewers: 140,
        },
    
        {
          restaurant: "Lawmore",
          orders: [
            ["Ayam", 126],
            ["CocaCola", 206],
            ["Burger", 368],
            ["IceCream", 80],
          ],
          reviewers: 260,
        },
    
        {
          restaurant: "Burger Queen",
          orders: [
            ["Ayam", 85],
            ["CocaCola", 150],
            ["Burger", 450],
            ["Kentang", 20],
          ],
          reviewers: 80,
        },
      ])
    );

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-20
      • 2020-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多