天涯明月刀ol|天涯明月刀迅雷下载
  1. 當前所在位置:
  2. 首頁
  3. 捕魚大師

js的filter()方法 如何使用js的filter

2018-12-28 admin
  js的filter()方法
 
  filter()方法使用指定的函數測試所有元素,并創建一個包含所有通過測試的元素的新數組。
 
  filter()基本語法:
 
  arr.filter(callback[,thisArg])
 
  filter()參數介紹:
 
  參數名說明
 
  callback用來測試數組的每個元素的函數。調用時使用參數(element,index,array)
 
  返回true表示保留該元素(通過測試),false則不保留。
 
  thisArg可選。執行callback時的用于this的值。
 
  filter()用法說明:
 
  filter為數組中的每個元素調用一次callback函數,并利用所有使得callback返回true或等價于true的值的元素創建一個新數組。
 
  callback只會在已經賦值的索引上被調用,對于那些已經被刪除或者從未被賦值的索引不會被調用。那些沒有通過callback測試的元素會被跳過,不會被包含在新數組中。
 
  callback被調用時傳入三個參數:
 
  元素的值
 
  元素的索引
 
  被遍歷的數組
 
  如果為filter提供一個thisArg參數,則它會被作為callback被調用時的this值。否則,callback的this值在非嚴格模式下將是全局對象,嚴格模式下為undefined。
 
  filter不會改變原數組。
 
  filter遍歷的元素范圍在第一次調用callback之前就已經確定了。在調用filter之后被添加到數組中的元素不會被filter遍歷到。
 
  如果已經存在的元素被改變了,則他們傳入callback的值是filter遍歷到它們那一刻的值。被刪除或從來未被賦值的元素不會被遍歷到。
 
  示例:
 
  /*
 
  filter()實例:篩選排除掉所有的小值?
 
  下例使用filter創建了一個新數組,該數組的元素由原數組中值大于10的元素組成。
 
  */
 
  functionisBigEnough(element){
 
  returnelement>=10;
 
  }
 
  varfiltered=[12,5,8,130,44].filter(isBigEnough);
 
  console.log(filtered);//[12,130,44]
 
  /*
 
  filter()兼容舊環境
 
  filter被添加到ECMA-262標準第5版中,因此在某些實現環境中不被支持。可以把下面的代碼插入到腳本的開頭來解決此問題,
 
  該代碼允許在那些沒有原生支持filter的實現環境中使用它。該算法是ECMA-262第5版中指定的算法
 
  */
 
  Array.prototype.filter=Array.prototype.filter||function(func){
 
  vararr=this;
 
  varr=[];
 
  for(vari=0;i<arr.length;i++){
 
  if(func(arr[i],i,arr)){
 
  r.push(arr[i]);
 
  }
 
  }
 
  returnr;
 
  }
捕魚駕到 天涯明月刀ol