簡體   English   中英

了解Array.prototype.map

[英]Understanding Array.prototype.map

我正在經歷Javascript映射函數,並停留在循環語法上。 很難找出逗號后o 誰能幫我解決這個問題。 另外,循環的終止條件是什么?

Array.prototype.mymap = function (callback) {
  var obj = Object(this);

  if (obj.length === 0) return null;
  if (typeof(callback) === 'undefined') return null;

  for (var i = 0, o; o = obj[i]; i++) {
    obj[i] = callback(o);
  }

  return obj;
};
for (var i = 0, o; o = obj[i]; i++) {
    obj[i] = callback(o);
}

這與以下內容相同:

var i = 0,
    o;

while (o = obj[i]) {
    ...
    i++;
}

這意味着它將聲明變量o ,該變量最初設置為undefined 在每次循環迭代期間, obj[i]被分配給o obj[i]導致undefined (因為i超出數組的長度)時,表達式o = obj[i]導致undefined ,從而終止了循環。

實際上,此循環實現有一個bug:只要任何數組值為falsey ,它就會終止; 這可能是不希望的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM