💡

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

1 min read

今回利用する多次元配列

const arr = [
   { 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 }
]

実装

Object.values(arr.reduce((a, {id, name, money}) => ({...a, [id]:{id, name, money:(a[id] ? a[id].money : 0) + money}}), {}))

>>> [ { id: 1, name: '太郎', money: 14300 },
      { id: 2, name: '次郎', money: 1500 },
      { id: 3, name: '三郎', money: 1200 } ]

Object.values

const object1 = {
  a: 'somestring',
  b: 42,
  c: false
};

console.log(Object.values(object1));
// expected output: Array ["somestring", 42, false]

MDN

Array.prototype.reduce

const array1 = [1, 2, 3, 4];
const reducer = (accumulator, currentValue) => accumulator + currentValue;

// 1 + 2 + 3 + 4
console.log(array1.reduce(reducer));
// expected output: 10

// 5 + 1 + 2 + 3 + 4
console.log(array1.reduce(reducer, 5));
// expected output: 15
  • reduceは4つの引数をとり、それぞれ「直前の結果」「今回の値」「連番」「自身の配列」を示します。

色々な使い方
MDN

参考

中身が違う多次元配列を重複チェックする

Discussion

ログインするとコメントできます