ES6中的数组常用方法

数组在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"]
}


作者:用户6820489187923
链接:https://juejin.cn/post/6970573933762314247
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞鹰3995

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值