LoginSignup
0
0

More than 1 year has passed since last update.

map()とfilter()の比較(備忘録)

Last updated at Posted at 2021-05-08

TodoAppの作成時に、mapメソッドとfilterメソッドの違いがいまいちピンとこなかったので、 改めて調べなおした備忘録です。

MDNによると、
map( ): 与えられた関数を配列のすべての要素に対して呼び出し、その結果からなる新しい配列を生成

filter( ): 提供された関数によって実装されたテストに合格したすべての要素を含む新しい型付き配列を生成

例:Todoアプリでイベントで発火する関数内でmap(),filter()を使用。

const tasks = 
[
     {
      id: 1,
      title: "買い物",
      completed: false
     },
     {
      id: 2,
      title: "英語の課題",
      completed: false
     },
    {
      id: 3,
      title: "筋トレ",
      completed:true
     },
]

完了したtaskに、打ち消し線をひく時

同じ数の要素を返すが、要素の中のvalueは変化する(ここでは、completedプロパティのfalseとtrueが入れ替わっている)

toggleCompleted(id) {
      this.tasks = this.tasks.map((task) =>
        task.id === id ? { ...task, completed: !task.completed } : task
      );
    },

taskを削除する時

同じ数または、それより少ない数の要素を返す。要素内の変化はなし。

deleteTask(id) {
        this.tasks = this.tasks.filter((task) => task.id !== id);
    },
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0