1娜汁、 判斷數(shù)組中所有元素是否符合要求:
arr.every(嫂易、、掐禁、):判斷arr中所有元素是否都符合要求怜械。
? arr.some(颅和、、缕允、):判斷arr中是否包含符合要求的元素峡扩。
如何使用:
??? var bool=arr.every(function(val,idx,arr){
?????? ?????return判斷條件
????? }
);
some:判斷是否*包含*滿足要求的元素
??arr.some(function(val,idx,arr){
????? ...
?? })
???every會用function去arr中每個元素執(zhí)行檢查。只有每個元素的執(zhí)行結果都為true時障本,才返回true教届。只要任意一個不返回true,則every立刻返回false彼绷。
??? 說明:
????val:自動獲得當前正在檢查的元素值
????idx:自動獲得當前正在檢查的元素位置
????arr:自動獲得當前正在檢查的數(shù)組對象
?2巍佑、遍歷: 對數(shù)組中的每個元素執(zhí)行相同個操作
?? arr.forEach(、寄悯、萤衰、):對原數(shù)組arr中每個元素執(zhí)行相同的操作,再保存回原數(shù)組猜旬。直接修改原數(shù)組
arr.forEach(function(val,idx,arr){
????? ?????????? ...對arr[idx]的值做修改
?? ??????????????? })
var arr1=[1,2,3,4,5];
? arr1.forEach(function(val,idx,arr){
? ? ? ? ? arr[idx]*=2;
? ?});
?console.log(String(arr1));
????arr.map(脆栋、、洒擦、):基于原數(shù)組arr椿争,將每個元素加工后,生成新數(shù)組熟嫩。不直接修改原數(shù)組秦踪,返回新數(shù)組
varnewArr=arr.map(function(val,idx,arr){
????? ?????????? //根據(jù)val,修改后掸茅,返回給新數(shù)組
?? ??????????????? ?return新值;
?? ??????????????? })
例如:
???????????????????? vararr2=[10,8,6,4,2];
???????????????????? varends=arr2.map(function(val,idx,arr){
??????????????????????????? returnval*=2;
???????????????????? });
????????????? ?????? console.log(String(arr2));
???????????????????? console.log(String(ends));
3椅邓、過濾和匯總:
?? filter:復制出原數(shù)組中符合要求的元素,組成新數(shù)組昧狮。
??? var sub=arr.filter(function(val,idx,arr){
??????? return條件
?????? })
???? 不修改原數(shù)組景馁。
???????//過濾
????????var arr=[1,2,3,4,5];
? ? ? ? var evens=arr.filter(function(val){
? ? ? ? ? return val%2==0;//過濾出數(shù)組中的偶數(shù)
? ? ? ? ? ?});
? ? ? ? ? ? varodds=arr.filter(function(val){
? ? ? ? ? ? ? ?return val%2==1;//過濾出數(shù)組中的奇數(shù)
? ? ? ? ? ? ? ?})
? ? ? ? ? ? ? console.log(String(evens));
? ? ? ? ? ? ? ?console.log(String(odds));
? ? ? ? ? ? ? ?console.log(String(arr));
?? ?reduce:將數(shù)組中每個元素的值匯總出一個結果。
??????var?r=arr.reduce(
function(prev,val,idx,arr){
?????????? ???????????????? ?????//prev: 獲得目前截止的匯總值
????? ????????????????? ???return?prev和val的匯總值
???????? ???????????? },base)
? 依次將arr中每個值逗鸣,匯總到prev中合住。
? 說明:prev獲得的是截止idx位置之前的所有元素值的臨時匯總
??????base,用來設置起始的匯總值撒璧。
?
????//匯總
????????????? ???? vararr=[1,2,3,4,5];
????????????? ???? varr=arr.reduce(function(prev,val){
???????????????????? ?? return prev+val;
????????????? ???});
????????????? ???console.log(r);
?
????????????? ??var arr2=[6,7,8,9,10];
????????????? ??r=arr2.reduce(function(prev,val){
???????????????????? ?? return prev+val;
????????????? ???? },r);
????????????? ???console.log(r);