首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将对象数组转换为更高级的数组

如何将对象数组转换为更高级的数组
EN

Stack Overflow用户
提问于 2018-09-04 08:22:51
回答 1查看 34关注 0票数 0

我在寻找解决我在JS中的小问题的方法。我有一系列的对象

代码语言:javascript
复制
[
 { "id": "id-1", "weight": 345 },
 { "id": "id-2", "weight": 500 },
 { "id": "id-3", "weight": 300 }
]

我想得到图片上的数组

代码语言:javascript
复制
[
  {
    "orderID" : "uniqueID",
    "load" : [
       { "id" "id-1", "weight": 345 },
       { "id" "id-2", "weight": 500 },
    ]
  },
  {
    "orderID" : "uniqueID",
    "load" : [
       { "id" "id-3", "weight": 300 }
    ]
  }
]

我想把包分成几个负载(每个负载不超过1000磅)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-04 08:39:57

您可以使用array.reduce进行分组:

代码语言:javascript
复制
var arr = [
 { "id": "id-1", "weight": 345 },
 { "id": "id-2", "weight": 500 },
 { "id": "id-3", "weight": 300 }
];

var res = arr.reduce((m, o, i) => {
    var lastPushedElement = m[m.length - 1];
    var totLoad = lastPushedElement.load.reduce((s, e) => s + e.weight, 0);
    if ((totLoad + o.weight) <= 1000) {
        lastPushedElement.load.push(o);
    } else {
        m.push({ orderID: i + 1, load: [o] });
    }
    return m;
}, [{ orderID: 0, load: [] }]);

console.log(res);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52161890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档