💡

【jsワンライナー】多次元配列内の重複要素を加工したデータを取得する

に公開2

Discussion

nap5nap5

集計集約操作を達成したい場合はtidyjsライブラリを使うとハンディかもです。

demo code.
https://codesandbox.io/p/sandbox/pedantic-nova-d2xjde?file=%2Fsrc%2Findex.ts

import { default as dump } from "pretty-format";

import { tidy, groupBy, sum, summarize } from "@tidyjs/tidy";

// Input
const data = [
  { id: 1, name: "太郎", money: 3000 },
  { id: 2, name: "次郎", money: 1000 },
  { id: 3, name: "三郎", money: 1200 },
  { id: 2, name: "次郎", money: 500 },
  { id: 1, name: "太郎", money: 1300 },
  { id: 1, name: "太郎", money: 10000 },
];

const result = tidy(
  data,
  groupBy(["id", "name"], summarize({ total: sum("money") }))
);

console.log(dump(result));

// Output
Array [
  Object {
    "id": 1,
    "name": "太郎",
    "total": 14300,
  },
  Object {
    "id": 2,
    "name": "次郎",
    "total": 1500,
  },
  Object {
    "id": 3,
    "name": "三郎",
    "total": 1200,
  },
]

簡単ですが、以上です。