1. 程式人生 > >javascript陣列API

javascript陣列API

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]