定義と使用法
フィルタ()メソッドは、すべての要素を修飾指定された配列を確認することによって、アレイ内の新しい要素の新しい配列を作成します。
注: ()フィルタは、空のアレイ検出されません。
注: フィルタ()は、元の配列を変更しません。
文法
array.filter(function(currentValue,index,arr), thisValue)
パラメータ説明
パラメータ | 説明 | ||||||||
---|---|---|---|---|---|---|---|---|---|
機能(currentValueは、インデックス、ARR) | 必要があります。関数、配列の各要素は、この機能を実行する 関数のパラメータを:
|
||||||||
thisValue | オプション。コールバックオブジェクトの使用の例は、「本」の値として、関数に渡されます。 thisValueを省略した場合、「この」値が「未定義しました」 |
実現
// 实现filter
Array.prototype.filter = function(fn, value){
if (typeof fn !== "function") {
return false;
}
var arr = this;
var temp = [];
for (var i = 0; i < arr.length; i++) {
var result = fn.call(value, arr[i], i, arr);
if (result) temp.push(arr[i]);
}
return temp;
}
テスト
var arr = ["a", "bb", "ccc", 100, 2222, 3111];
console.log(arr.filter(function(item){
return typeof item === "string"
}));
console.log(arr.filter(function(item){
return typeof item === "number"
}));