繁体   English   中英

从嵌套对象数组中删除重复项并在 es6 中对唯一对象进行分组

[英]Remove duplicates from array of nested Objects and group unique objects in es6

在这里学习蜜蜂。

  • 我有一组嵌套的 json 对象,如下所示

请使用 ES6 帮助我理解这一点。 我正在努力使用 reduce、set 等来理解其他类似的帖子。非常感谢任何帮助。 谢谢 !

我无法完全理解您所说的重复和删除它们的含义。 我认为,您尝试实现的是,将 SKUBACODE 和 SKUQUANTITY 聚合到一个数组中,并将所有相关元数据添加到该 object 中。 假设每个 SKUBACODE 在每个 ORDERCLIENTREF 中只存在一次,并且所有其他元数据都是不变的。

desired_output = json_array
  .filter((group) => group != null && group.length > 0)
  .map((group) => {

  // create a hash map for sku
  const skuMap = group.reduce((acc, curr) => acc.set(curr.SKUBARCODE, SKUQUANTITY), new Map());

  const new_obj = group[0];
  new_obj.SKUBARCODE = undefined;
  new_obj.SKUQUANTITY = undefined;

  // generate output of hash map
  new_obj.ORDERLINES = [...skuMap].map(([code, quant]) {
    return {
      SKUBARCODE: code,
      SKUQUANTITY: quant
    };
  });

  return new_obj;
});

  

看起来您正在尝试做的只是从一组对象中获取这两个字段(SKUBARCODE、SKUQUANTITY)。 你可以试试这样

  const groupOfSimilarObejcts = grouped.reduce((accumulated, currentGroup) => {
               return {
         ...currentGroup,
         ORDERLINES: [...currentGroup, {
            SKUBARCODE: currentGroup.SKUBARCODE,
            SKUQUANTITY: currentGroup.SKUQUANTITY
        }]
       };
    }, {});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM