es6-数组扩展

9 篇文章 0 订阅
本文介绍了ES6中数组的一些新特性,包括find()、includes()、keys()、values()、fill()、array.of()、copyWithin()以及Array.from()等方法的使用,帮助开发者更好地理解和应用这些功能。
摘要由CSDN通过智能技术生成

•find();

let arr = [1, 2, 3, 4, 5]
arr.find(function(x, i, a){
    if(x < 2) {console.log(x, i, a); };
};
//输出 1, 0, [1, 2, 3, 4, 5]

find() 的参数是一个函数,函数有三个参数,分别是 值、索引、数组。

•includs()

let arr = [1, 2, 3, 4, 5];
arr.includs(2, 3);
//返回false

includs()接收两个参数,第一个参数为查询的值,第二个为查询的起始位置。

•keys value

let arr = [1, 2, 3, 4, 5];
for(let a of arr.keys()){
    console.log(a);
};
//输出:0 1 2 3 4

遍历了数组的索引,其实就是key就是找到数组的索引值,觉得没什么用,不如上面的find() find还有个findindex(),当传入一个参数的时候返回的就是索引值,这个还要借用for of

value与上面的用法一样,只是返回的是数组的值。

•fill()

let arr=['w','b'];
arr.fill('i')//结果:['i','i'],改变原数组
arr.fill('o',1)//结果:['i','o']改变原数组,第二个参数表示填充起始位置
new Array(3).fill('k').fill('r',1,2)//结果:['k','r','k'],第三个数组表示填充的结束位置

•array.of()
arrayof( 参数 )返回的还是一个数组,与参数的类型无,与参数的数量有关,数量为0返回空数组。
其中Array.of() 与 Array() 构造函数之间的差别就是:
一个返回数组7,一个返回7个空值的数组。

Array.of(7) //[7]
Array(7)  //[,,,,,,]

•copyWithin()

["w", "i", "r"].copyWithin(0)//此时数组不变
["w", "i", "r"].copyWithin(1)//["w", "w", "i"],数组从位置1开始被原数组覆盖,只有1之前的项0保持不变
["w", "i", "r","b"].copyWithin(1,2)//["w", "r", "b", "b"],索引2到最后的r,b两项分别替换到原数组1开始的各项,当数量不够,变终止
["w", "i", "r",'b'].copyWithin(1,2,3)//["w", "r", "r", "b"],强第1项的i替换为第2项的r

copyWithin方法接收三个参数,被替换数据的开始处、替换块的开始处、替换块的结束处。

•Array.from()

Array.from({'0':'w','1':'b',length:2})//["w", "b"],返回数组的长度取决于对象中的length,故此项必须有!
Array.from({'0':'w','1':'b',length:4})//["w", "b", undefined, undefined],数组后2项没有属性去赋值,故undefined
Array.from({'0':'w','1':'b',length:1})//["w"],length小于key的数目,按序添加数组
    Array.from([1,2,3],function(x){
        return x+1})//[2, 3, 4],第二个参数为回调函数

Array.from()可以将类数组转换为数组,也可以将字符串一类可遍历对象转换为数组,接收两个参数,一个是转换对象,一个是回调函数。

map

var data = [1, 2, 3, 4];

var arrayOfSquares = data.map(function (item) {
  return item * item;
});

alert(arrayOfSquares); // 1, 4, 9, 16

参数为一个函数,函数的参数为数组的各个值。

some every

var arr = [, , , , ];
arr.some(筛选条件){};

some是有一个符合条件的就成立,
every是所有都符合条件才成立。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值