🛠️

ちゃんとreduceを使う【JS】

2022/07/10に公開

mapとfilterを併用して使ってしまってたのでパフォーマンス的にちゃんとreduceを使う。

要改善なコード

const arr = [
  {
    name: "youtube",
    develop: "google",
  },
  {
    name: "instagram",
    develop: "meta",
  },
  {
    name: "facebook",
    develop: "meta",
  }
];

const result = arr.map((item) => ({
  displayName: item.name,
  displayValue: item.develop,
})).filter((item) => item.displayValue === "meta");
// result
// 0: {displayName: 'instagram', displayValue: 'meta'}
// 1: {displayName: 'facebook', displayValue: 'meta'}

reduceを使ったコード

const arr = [
  {
    name: "youtube",
    develop: "google",
  },
  {
    name: "instagram",
    develop: "meta",
  },
  {
    name: "facebook",
    develop: "meta",
  }
];

const result = arr.reduce((prev, current) => {
  if (current.develop === "google") return prev;
  return [
    ...prev,
    {
      displayName: current.name,
      displayValue: current.develop
    }
  ]
}, []);
// result(結果は同じ)
// 0: {displayName: 'instagram', displayValue: 'meta'}
// 1: {displayName: 'facebook', displayValue: 'meta'}

Discussion