数组在JS中虽然没有函数地位那么高,但是也有着举足轻重的地位,下面我就结合这ES5中的一些常用的方法,与ES6中的一些方法做一些说明和实际用途。大家也可以关注我的微信公众号,蜗牛全栈。
一、ES5中数组常用方法:
1、循环遍历。
1 let arr = [1,2,3] 2 for(let i=0;i<arr.length;i++){ 3 console.log(i) // 1 2 3 4 }
2、forEach:没有返回值,不能使用break和continue。只是针对每个元素调用Func。
let arr = [1,2,3] // elem 数组里面的每一项 // index 数组索引 // array 数组 arr.forEach(function(elem,index,array){ console.log(elem,index) // 1 0 2 1 3 2 })
3、map:返回新数组,每个元素为调用Func后的结果。
let arr = [1,2,3] let result = arr.map(function(val){ val += 1 return val }) console.log(arr,result) // [1,2,3] [2,3,4]
4、filter:返回符合Func条件的元素数组。
let arr = [1,2,3] let result = arr.filter(function(val){ return val == 2 }) console.log(arr,result) // [1,2,3] [2]
5、some:返回布尔值,判断是否有元素符合Func条件(有一个满足条件就返回true)。
let arr = [1,2,3] let result = arr.some(function(val){ return val == 2 }) console.log(arr,result) // [1,2,3] true
6、every:返回布尔值,判断每个元素符合Func条件(全部满足条件才返回true)。
let arr = [1,2,3] let result = arr.every(function(val){ return val == 2 }) console.log(arr,result) // [1,2,3] false
7、reduce:接收函数作为一个累加器
7-1:累加器
let arr = [1,2,3] // prev为前一个对象 // cur为当前对象 // index为当前序列 // arr为当前数组 let sum = arr.reduce(function(prev,cur,index,arr){ return prev + cur },0) console.log(sum) // 6
7-2、获取数组中最大值。
let arr = [1,2,3] let max = arr.reduce(function(prev,cur){ Math.max(prev,cur) }) console.log(max) // 3
7-3、数组去重
let arr = [1,2,3,3] let res = arr.reduce(function(prev,cur){ prev.indexOf(cur) == -1 && prev.push(cur) return prev },[]) console.log(res) // [1,2,3]
8、for...in:遍历数组的时候会将原型下面函数遍历
Array.prototypr.foo = function(){ console.log("foo") } let arr = [1,2,3] for(let index in arr){ console.log(index) // 遍历数组同样会遍历原型下面的函数foo }
二、ES6中数组常用方法
1、find:返回第一个通过测试的元素
let arr = [1,2,3,4] let res = arr.find(function(val){ return val > 2 }) console.log(res) // 3
2、findIndex:返回第一个通过测试的元素对应索引
let arr = [1,2,3,4] let res = arr.find(function(val){ return val > 2 }) console.log(res) // 2
3、for...of
let arr = [1,2,3,4] for(let item of arr){ console.log(item) // 1 2 3 4 }
3-1、values:仅遍历值
let arr = ["a","b","c","d"] for(let item of arr.values()){ console.log(item) // "a" "b" "c" "d" }
3-2、keys:仅遍历index
let arr = ["a","b","c","d"] for(let item of arr.keys()){ console.log(item) // 0 1 2 3 }
3-3、entries:遍历index和值
let arr = ["a","b","c","d"] for(let item of arr.entries){ console.log(item) // [0, "a"] [1, "b"] [2, "c"] [3, "d"] }
原文:https://www.cnblogs.com/feiying3995/p/14866846.html