indexOf數組
使用場景:
查找一個數組中是否包含某個元素, 若是有則返回下標值, 沒有則返回-1app
mapcode
適用場景:批量操做數組,一般用來對元素進行總體格式化或計算操做, 結果會返回一個數組.callback中需返回一個值來進行保存, 以產生新的數組
e.g.:排序
var oldArr = [ {first_name:"Colin",last_name:"Toh"}, {first_name:"Addy",last_name:"Osmani"}, {first_name:"Yehuda",last_name:"Katz"} ]; function getNewArr(){ return oldArr.map(function(item,index){ item.full_name = [item.first_name,item.last_name].join(" "); return item; }); } console.log(getNewArr());
filterget
適用場景:篩選過濾數組元素, 能夠生成一個新的數組, 而不更改原數組, callback中需返回一個規則, 做爲過濾的條件it
var arr = [ {"name":"apple", "count": 2}, {"name":"orange", "count": 5}, {"name":"pear", "count": 3}, {"name":"orange", "count": 16}, ]; var newArr = arr.filter(function(item){ return item.name === "orange"; });
forEachio
適用場景:
對原數組進行操做, 更改原來的元素 (與map()相似, 可是是直接更改原數組的), 因爲是直接對原數組進行操做, 因此不須要返回值console
reduce(function (prev, next) {}, initial)ast
適用場景:這是一個數組的累加器,能夠依次對各元素進行累加操做, 須要返回操做以後的結果值供下一個循環使用(若是不傳入inital,則將數組的第0位做爲prev,若是傳入intial, 則將inital做爲prev, next爲數組的第0位)function
var arr = ["apple","orange","apple","orange","pear","orange"]; function getWordCnt(){ return arr.reduce(function(prev,next){ prev[next] = (prev[next] + 1) || 1; return prev; },{}); } console.log(getWordCnt());
sort
適用場景: 對原數組進行排序操做,會更改原數組.默認升序排列 . 若自定義排序規則,則需在callback中返回一個自定義規則, 當知足規則時, 數組會進行換位操做