javascript陣列API
阿新 • • 發佈:2018-11-05
1. 過濾器 filter
1. 語法:
var new_array = arr.filter(callback(element[, index[, array]])[, thisArg])
1.callback:用來測試陣列的每個元素的函式,呼叫時使用的引數
引數1:element
當前陣列處理的元素
引數2:index 可選
正在處理陣列的索引
引數3:array 可選
呼叫了filter的陣列
引數4:thisArg
執行callback時的this的值
2.描述
filter為陣列中的每個元素呼叫一次callback函式,並利用所有使得callback返回 true或等價於true的值的元素建立一個新陣列,callback只會在已經賦值的索引上被呼叫.那些沒有通過callback測試的元素會被跳過,不會被包含在新陣列中 如果為fiter提供一個thisarg引數,則它會被作為 callback 被呼叫的this值.否則, callback的this值在非嚴格情況下將是全域性物件,嚴格模式下 為undefied. callback最終觀察到的this值是根據通常函式看到的this值確定的 filter 不會改變原陣列,它會返回過濾後的新陣列 filter 遍歷的元素範圍在第一次呼叫 callbake之前就已經確定了.在呼叫 filter之後被新增到陣列中的元素不會被filter遍歷到.如果已經存在的元素改變了則傳入他們的callback的值是filter遍歷它們那一刻的值,被刪除或從未被賦值的元素不會被遍歷到
3. 例項
function isBigEnough(element) {
return element >= 10;
}
var filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
// filtered is [12, 130, 44]