地図とどのようにES5を達成するための方法の配列を使用する方法

地図とどのようにES5を達成するための方法の配列を使用する方法

JavaScriptのArrayマップ()方法

定義

map()方法を返す新しい配列を、配列要素は、機能処理アレイエレメント後に元の値を呼び出します

map()配列要素の元の順序に従った方法を順次要素を処理します。

注意:

  • map() かどうかは、検出アレイは空です。
  • map() これは、元の配列を変更するが、新しい配列を返すしません。

文法

arr.map(function(curVal,idx,arr), thisVal)

パラメータ 説明
CURVAL あなたは、要素の現在の値でなければなりません。
IDX あるいは、要素の現在のインデックス値。
ARR あるいは、現在の要素に属するオブジェクトの配列。
thisVal また、それはよう、関数に渡されthisた値。

let arr = [1,2,3,4,5];
arr.map(val => val+1); // [2,3,4,5,6]

ES5実現マップ()関数を使用します

Array.prototype.myMap = function(fn, ctx) {
    let oriArr = Array.prototype.slice.call(this);
    let mappedArr = [];
    for (let i = 0; i < oriArr.length; i++) {
        if (!oriArr.hasOwnProperty(i)) {
            // 若原数组为稀疏数组,不含索引为i的元素时,mappedArr直接增加length,来达到同样的稀疏效果
            mappedArr.length++;
        } else {
            mappedArr.push(fn.call(ctx, oriArr[i], i, this));
        }
    }
    return mappedArr;
};

検出

let a = [1,2,3,,,,4,];
a.map(val => val+1); // (8) [2, 3, 4, empty × 3, 5, empty]
a.myMap(val => val+1); // (8) [2, 3, 4, empty × 3, 5, empty]

おすすめ

転載: www.cnblogs.com/zmj97/p/10966552.html