レッスンではチェックボックスの処理を forEach()
を使って以下のように実装しています。
input.addEventListener('change', () => {
todos.forEach((item) => {
if (item.id === todo.id) {
item.isCompleted = !item.isCompleted;
}
});
localStorage.setItem('todos', JSON.stringify(todos));
});
上記コードを forEach()
でなく map()
を使って書いても一応動作しました。
input.addEventListener('change', () => {
todos = todos.map((item) => {
return {
id: item.id,
title: item.title,
isCompleted: item.id === todo.id ? !item.isCompleted : item.isCompleted,
};
});
localStorage.setItem('todos', JSON.stringify(todos));
});
上記コードで問題ないかお手数ですがご確認頂けないでしょうか。
(別レッスンで似たようなコードがあった気がするのですが。。)
forEach()
と map()
の使い分けがよくわかっておりません。今回もどちらを使うか迷いました。
今回のケースでは何となく forEach()
を使うのが妥当だと感じますが、両者の使い分けはどのようにすべきなのでしょうか。
この回答を見るにはプレミアムプランへの登録が必要です
プレミアムプランとは?