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中返回一个自定义规则, 当知足规则时, 数组会进行换位操做