#author("2021-02-23T06:18:27+09:00","default:ryuichi","ryuichi")
#author("2021-02-23T06:36:45+09:00","default:ryuichi","ryuichi")
* for-ofとforEachとmapの使い分け [#qdfafe32]

** 1. for-of [#n535dbce]

#pr(javascript){{  
 for (const v of ["a", "b", "c"]) {
    if (v === 'x') {
        break;
    }
    console.log(v);
 }
}}

- ''長所:'' 速い 💨
- ''長所:'' 途中でbreakできる

*** 参考 [#fa2f9353]
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/for...of

** 2. forEach() [#r48e09c1]

#pr(javascript){{
 ["a", "b", "c"].forEach((v) => {
   console.log(v);
 });
}}

- ''長所:'' 速い
- ''短所:'' 途中でbreakできない
> 例外を発生する以外の方法で、forEach() ループを止めることはできません。ループ中に中断する必要がある場合、forEach() メソッドは適切な方法ではありません。
> https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach

*** 参考 [#efcd5da9]

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach


** 3. map() [#jbd33eb3]

#pr(javascript){{
 var nums = [1, 2, 3].map((v) => {
   return v * 10;
 });
 
 console.log(nums);
}}
 
- ''長所:'' 値をreturnできて、新しい配列を作れる
- ''短所:'' 遅い
- ''短所:'' Set/Mapなどをループできない。配列にしか使えない
- ''短所:'' 新しい配列を使わないならmap()を使うべきではない
> map() を使用すべきではない場合
> map は新しい配列を作成するので、返された配列を使わない場合、map を使うのはパターンに合いません。代わりに forEach または for-of を使用してください。
> https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/map#when_not_to_use_map

*** 参考 [#fc27df87]

- https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/map


** 補足: Map/Setなどのループ [#c912780c]

#pr(javascript){{
 var set = new Set([1, 2, 3]);
 var map = new Map([
   ["a", 1],
   ["b", 2],
   ["c", 3],
 ]);
 
 for (var v of set) {
   console.log(v);
 }
 
 map.forEach((v, k) => {
   console.log(k, v);
 });
}}


- https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Set
- https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Map

** 参考 [#y0477bc7]

https://stackoverflow.com/questions/50844095/should-one-use-for-of-or-foreach-when-iterating-through-an-array


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS