JS語法之:map()方法


MDN web docs上面說:

map() 方法創建一個新數組,其結果是該數組中的 每 個 元 素 都調用一個提供的函數后返回的結果。

並舉了個例子:

var array1 = [1,4,9,16];
const map1 = array1.map(x => x *2);
console.log(map1);
打印結果為:

> Array [2,8,18,32]
而我這樣寫時:

var array1 = [1, 4, 9, 16];

const map1 = array1.map(x => {
  if (x == 4) {
   return x * 2;
  }
});

console.log(map1);
打印結果為:

> Array [undefined, 8, undefined, undefined]


為什么會出現三個undefined呢?而不是我預期的[1,8,9,16]。

這樣寫只是增加了一個條件,即x的值為4時才乘以2,之所以會出現undefined,是因為map()方法創建了一個新數組,但新數組並不是在遍歷完array1后才被賦值的,而是每遍歷一次就得到一個值。所以,下面這樣修改后就正確了:

var array1 = [1, 4, 9, 16];

const map1 = array1.map(x => {

  if (x == 4) {
    return x * 2;
  }
  return x;
});


這里注意箭頭函數有兩種格式:
1.只包含一個表達式,這時花括號和return都省略了。
2.包含多條語句,這時花括號和return都不能省略。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM