ホームページ > ウェブフロントエンド > jsチュートリアル > ECMA5 配列の新しいメソッドと forEach() 模倣実装_JavaScript スキルとは何ですか

ECMA5 配列の新しいメソッドと forEach() 模倣実装_JavaScript スキルとは何ですか

WBOY
リリース: 2016-05-16 15:33:56
オリジナル
1547 人が閲覧しました

以下は、ECMA5 配列の新しいメソッド forEach() の模倣実装を紹介するコード例です。具体的なコードは次のとおりです。

var o = {
       forEach: function (callback) {
         // alert(this.length);
         for (var i = , len = this.length; i < len; i++) {
           callback && callback(this[i], i, this);
         }
       },
       get length(){
         var sum=;
         for(var n in this) {
           sum+=;
         }
         return sum;
       }
     };
     Object.defineProperty(o,"length",{enumerable:false});
     Object.defineProperty(o,"forEach",{enumerable:false});
     o[] = ;
     o[] = ;
     o[] = ;
     o.forEach(function(v,i,arr){
       arr[i]=v+;
       console.log(arr[i]+"callback");
     });
ログイン後にコピー

注目に値する:

1.コールバック関数の使用

2.defineProperty関数とdefineProperties関数の意味

これら 2 つの関数はどちらも、オブジェクト プロパティの 4 つの主要な特性 (値、書き込み可能性、列挙可能性、構成可能性) を定義できます

まだ時間がありますので、次のように ECMA5 の配列の新しいメソッドをいくつか紹介します。

今日演習を行っているときに、fitter(); を見つけました。これらの新しい配列メソッドは以前にも見たことがありますが、実際の戦闘では使用したことがないので、今日はそれらを復習します。

forEaach()

このメソッドは配列を最初から最後まで走査し、配列内の各要素に対して指定された関数を呼び出します。この関数は、foreach の最初のパラメーターとして機能します。呼び出される関数には、現在の配列要素、現在の要素のインデックス、および走査される配列の 3 つのパラメータを指定できます。パラメータが 1 つしかない場合、このパラメータが現在の配列要素になります。

var data = [1,2,3,4,5] ;
// 计算数组的和
var sum = 0 ; 
data.forEach(function(value){sum += value; }); // 这里的value 分别代指 data[0~4];
console.log( sum ) // 15
// 每个数组元素自加1
data.forEach(function(v, i, a){ a[i] = v + 1; }) // v 分别代指 data[0~4]; a 代指data;
map() ;
ログイン後にコピー

map() メソッド は、呼び出された配列の各要素を指定された関数に渡し、関数の戻り値を含む配列 (呼び出した配列とまったく同じ形式) を返します。 : 戻り値が必要であり、呼び出し元の配列を変更してはなりません。

var a = [1,2,3];
b = a.map(function(x) { return x * x; });
filter() 
ログイン後にコピー

この関数の戻り値は呼び出し関数のサブセットです。これは、関数に渡された関数式が論理的な判断に使用されるためです。これが true の場合、現在の値がサブセット配列にプッシュされて返されます。

var getNum = function (a, b, k) {
return a.filter(function (v) {return b.indexOf(v) > -1;})[k-1];
}
var A = [3,4,5,6,7,8,9];
var B = [12,10,8,6];
console.log(getNum(A, B, 1))
console.log(getNum(A, B, 2));
every() some() ;
ログイン後にコピー

これら 2 つの関数のパラメータはどちらも配列の要素を判定する判定関数であり、戻り値は true または false になります。

every()すべての配列要素が判定関数を呼び出して true を返した場合のみ、戻り値は &;

に似ています。

some() では、配列要素の 1 つが true である判定関数を呼び出している限り、true を返します。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート