数组在 JS 中尽管没有函数位置那么高,然而也有着无足轻重的位置,上面我就联合这 ES5 中的一些罕用的办法,与 ES6 中的一些办法做一些阐明和理论用处。大家也能够关注我的微信公众号,蜗牛全栈。
一、ES5 中数组罕用办法:
1、循环遍历。
let arr = [1,2,3]
for(let i=0;i<arr.length;i++){console.log(i) // 1 2 3
}
复制代码
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"]
}