JavaScript ES6 新特性语法学习(6)- 数组相关语法扩展
前言
昨天学习了一下ES6中关于字符串的语法扩展,感觉学到了很多东西,今天来认识一下ES6关于数组的语法扩展,数组和字符串一样在JavaScript中都随处可见,非常重要。
forEach
非常简单,用法与ES5中for循环遍历数组基本一致:
var arr = [1, 2, 3]
arr.forEach(item => {
console.log(item)
})
对比一下ES5:
var arr = [1, 2, 3]
for (let i = 0; i < arr.length; i++) {
console.log(arr[i])
}
感觉精简了很多,有用!
map
map方法需要传递一个函数,作用就是给数组中的每一个元素做处理,返回新的数组,很常见并且很重要:
var arr = [1, 2, 3]
var new_arr = arr.map((item) => {
return item += 1
})
console.log(new_arr) // [ 2, 3, 4 ]
some&every
两个数组元素对比的方法。
some:传递一个方法 ,遍历数组,把数组中的元素与定义的值进行如果一个为判断真就返回真,如果全假就返回假(有真返回真)
every:传递一个方法 ,遍历数组,把数组中的元素与定义的值进行 其中一个判断为假就返回假,如果全真就返回真(有假返回假)
使用代码测试一下:
var arr = [1, 2, 3]
var some_status = arr.some((item) => {
return item >2
})
var every_status = arr.every((item) => {
return item >2
})
console.log(some_status) // true
console.log(every_status) // false
filter
非常常用, 遍历数组,把数组中的元素与定义的值进行判断,返回符合要求的元素:
var arr = [1, 2, 3]
var filter_arr = arr.filter((item) => {
return item >2
})
console.log(filter_arr) // [3]
find
遍历数组查找,返回符合条件的第一个元素:
var arr = [1, 2, 3]
var filter_arr = arr.find((item) => {
return item >2
})
console.log(filter_arr) // 3
of
将多个元素组合并成一个数组,简单不常用:
var arr = Array.of(1,2,3)
console.log(arr) // [1, 2, 3]
from
对象转数组:
var object = {
0:1,
1:2,
2:3,
length: 3 // 需要定义长度,不然不会转换成功
}
var from_arr = Array.from(object)
console.log(from_arr) // [1, 2, 3]
includes
与字符串一样,判断某个元素是否在数组中:
var arr = [1, 2, 3]
console.log(arr.includes(1)) // true
console.log(arr.includes(0)) // false
可以严格检测为NaN的值,在ES5中一般使用indexOf()
是做不到的
keys,values,entries
数组迭代方法:
var arr = [1, 2, 3]
for(let item of arr.keys()){
console.log(item); // 遍历键
}
for(let item of arr.values()){
console.log(item); // 遍历值
}
for(let item of arr.entries()){
console.log(item); // 遍历键值
}
使用entries()
方法的结果:
[ 0, 1 ]
[ 1, 2 ]
[ 2, 3 ]
fill
覆盖数组,这个比较复杂,可以传一个或者三个参数,传一个参数的时候,参数为覆盖元素的内容,直接覆盖数组,保持原数组长度:
var arr = [1, 2, 3]
var res = arr.fill(0)
console.log(res) // [0, 0, 0]
三个参数时分别为,覆盖元素的内容,覆盖开始位置,覆盖结束位置:
var arr = [1, 2, 3]
var res = arr.fill(0, 0, 1)
console.log(res) // [0, 2, 3]
总结
今天接触到的ES6新特性中关于数组的扩展方法比较多,有很多非常常用的方法,有部分的语法跟字符串的扩展方法非常相似,记忆起来就非常快,下篇继续学习ES6语法!
转载自:https://juejin.cn/post/7134715225193840670