javascript
JavaScript数组(2)---遍历/迭代方法 8种
最近工作中經(jīng)常涉及到數(shù)據(jù)的處理,數(shù)組尤其常見,經(jīng)常需要對其進行遍歷、轉(zhuǎn)換操作,網(wǎng)上的文章零零散散,不得已自己又找出紅寶書來翻出來看,順便記一筆,便于以后查詢。
-
數(shù)組常用的方法
ECMAScript5為數(shù)組定義了8個迭代方法。每個方法都接受兩個參數(shù):要在每一項上運行的函數(shù)fn和(可選的)運行該函數(shù)的作用域?qū)ο蟆绊?`this` 的值。
傳入這些方法中的函數(shù)(fn)會接收3個參數(shù):item 、index 、array; 如:
array.forEach(function(item,index,array){//do your staff here; },this)?
根據(jù)使用方法的不同,這個函數(shù)執(zhí)行后的返回值,可能會/不會影響方法中的返回值。
這5個迭代方法作用及返回值概覽如下(末尾補充另外3個):
| 方法名 | 方法作用 | 返回值 |
| every() | 針對數(shù)組中每一項元素運行指定函數(shù) | Boolean:若每一項都返回true,返回true; |
| filter() | 針對數(shù)組中每一項元素運行指定函數(shù), | Array: ? 返回函數(shù)運行返回true的元素組成的新數(shù)組 |
| forEach() | 針對數(shù)組中每一項元素運行指定函數(shù) | null: 無返回值 |
| map() | 針對數(shù)組中每一項元素運行指定函數(shù) | Array: 返回函數(shù)運行后,得到到新新元素組成的新數(shù)組 |
| some() | 針對數(shù)組中每一項元素運行指定函數(shù) | Boolean: 若有任意一項執(zhí)行函數(shù)后返回true, 則返回true |
簡單來說:
every() 、some() 方法適合用于對數(shù)組元素進行條件判斷;
filter() ?、map() 方法適合用于對數(shù)組進行條件篩選/再處理;
forEach() 方法對不對數(shù)組本身做操作,僅僅對數(shù)組元素的二次應用;
下面介紹下各個方法的使用栗子:
先來假設一個場景,你拿到了公司的本月工資清單,假設你的工資為9000;公司員工工資組成的數(shù)組為salaries=[8500,12000,9900,9000],
a.?想知道 你的工資是不是最低的;
b.想知道 有沒有人和你工資一樣多;
c.想知道 ?是不是所有人待遇都一樣;
d.想 ? ? ?把大家的工資都換成K為單位的數(shù)據(jù)?
1 var a,b,c,d; 2 var your=9000; 3 var salaries=[8500,12000,9900,9000]; 4 a=salaries.some(function(item,index,array){ 5 return item<9000 6 }); 7 console.log(a);//true;恭喜你,還有人比你工資更低 8 9 10 b=salaries.filter(function(item,index,array){ 11 return item== your; 12 }) 13 console.log(b);//[9000] 呵呵,有人跟你待遇一樣 14 15 c=salaries.every(function(item,index,array){ 16 return item==your; 17 }); 18 console.log(c);//false .不是所有人都和你一樣待遇哦 19 20 d=salaries.map(function(item,index,array){ 21 return item/1000 22 }); 23 console.log(d);//[8.5,12,9.9,9]? PS:補充三個遺漏的方法
1.array.reduce(callback,[initalValue]):歸并函數(shù)——對每個數(shù)組元素執(zhí)行回調(diào)函數(shù),返回最后一次調(diào)用結(jié)果值
//此處回調(diào)函數(shù)有4個參數(shù),其中第4個參數(shù)可選;即calback(accumulator,value,index,array,initalValue)
2.Array.find(callback[,thisArg]):查找函數(shù)——返回第一個通過測試的元素
3.Array.findIndex(callback[,Arg]):查找函數(shù)——返回第一個通過測試的元素的索引值
?
看完這些是否覺得以后再也不需要for循環(huán)了,那么看看下面這個坑吧:
[1,2,3].map(parseInt);//[1,NaN,NaN]//注意: //1.Array.map(iterm,index,array) //2.parseInt(value,base)?
轉(zhuǎn)載于:https://www.cnblogs.com/hbzyin/p/6493371.html
總結(jié)
以上是生活随笔為你收集整理的JavaScript数组(2)---遍历/迭代方法 8种的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spark常见问题解决办法
- 下一篇: 利用Arcgis for javascr