【ES6】数组的拓展


引言:ES6增加了对数组的接口。

一、Array.from()方法

        Array.from方法用于将两类对象转为真正的数组:类似数组的对象和可遍历(iterable)的对象(包括ES6新增的数据结构Set和Map)。

//将类似数组的对象转化为数组
let arraylike = {
	'0' : 'a',
	'1' : 'b',
	'2' : 'c',
	length : 3
}
let arr=Array.from(arraylike); // ['a','b','c']

//将字符串转化为数组
Array.from('hello'); // ['h','e','l','l','o']

//将set解构转化为数组
let nameSet = new Set(['a','b']);
Array.from(nameSet); // ['a','b']

二、Array.of()方法

        Array.of方法用于将一组值转化为数组。这个方法的主要目的是弥补构造函数Array()的不足。因为参数的个数会导致Array()函数行为有差异。

Array(3); // [, , ,]
Array.of(3); // [3]

Array(3,4,5); // [3,4,5]
Array.of(3,4,5); // [3,4,5]

三、数组的copyWithin()方法

        copyWithin(target,start,end)方法用于在当前数组内部将指定位置的成员复制到其他位置。
它接受三个参数:
target:从该位置开始替换数据
start:从该位置开始读取数据,默认为0。如果负数,表示倒数第几个。
end:到该位置停止读取数据,默认等于数组长度。如果负数,表示倒数第几个。

[1,2,3,4,5].copyWithin(0,3,4); // [4,2,3,4,5]

[1,2,3,4,5].copyWithin(0,-2,-1); // [4,2,3,4,5]

四、数组的find()和findIndex()方法

        find()方法用于找出第一个符合条件的数组成员。它的参数是一个回调函数,所有数组成员依次执行回调函数,知道找出第一个返回值为true的成员,然后返回该成员。如果没有符合条件的成员,返回undefined。
        findIndex()方法和find差不多,但是返回的是数组成员的位置。

[1,2,-5,10].find((n) => n<0 ) //-5
[1,2,-5,10].findIndex((n) => n<0 ) //2

五、数组的fill()方法

        fill()方法用于使用给定的值填充数组。

['a','b','c'].fill(7); // [7,7,7]

new Array(3).fill(7); // [7,7,7]

['a','b','c'].fill(7,1,2); // ['a',7,'c']

六、数组的entries()、keys()、values()方法

        keys()方法对键名进行遍历。
        valuess()方法对键值进行遍历。
        entries()方法对键值对进行遍历。

for (let index of ['a','b'].keys()){
	console.log(index);
}
//0
//1

for(let elem of ['a','b'].values()){
	console.log(elem);
}
//'a'
//'b'

for(let [index,elem] of ['a','b'].entries()){
	console.log(index,elem);
}
// 0 'a'
// 1 'b'

查看更多ES6教学文章:

1. 【ES6】let与const 详解
2. 【ES6】变量的解构赋值
3. 【ES6】字符串的拓展
4. 【ES6】正则表达式的拓展
5. 【ES6】数值的拓展
6. 【ES6】数组的拓展
7. 【ES6】函数的拓展
8. 【ES6】对象的拓展
9. 【ES6】JS第7种数据类型:Symbol
10. 【ES6】Proxy对象
11. 【ES6】JS的Set和Map数据结构
12. 【ES6】Generator函数详解
13. 【ES6】Promise对象详解
14. 【ES6】异步操作和async函数
15. 【ES6】JS类的用法class
16. 【ES6】Module模块详解
17. 【ES6】ES6编程规范 编程风格

参考文献

阮一峰 《ES6标准入门(第2版)》

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

征途黯然.

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

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

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

打赏作者

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

抵扣说明:

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

余额充值