前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ES6之数组扩展

ES6之数组扩展

作者头像
19组清风
发布2021-11-15 15:43:40
2280
发布2021-11-15 15:43:40
举报
文章被收录于专栏:Web Front EndWeb Front EndWeb Front End
1. Es5中的一些数组方法。
    1. for循环。

    2. forEach:无返回值,break和container会报错。

    3. map:返回一个New Array,根据function对于每一项格式化。

    4. filter:返回符合条件的数组。

    5. some:数组中有一个为true返回true。

    6. every:数组中所有满足条件,返回true。

    7. reduce:累加执行,具体参数可以参照MDN。

    8. for in (不建议使用)。

2. ES6对于数组方法的扩展。
    1. for of:迭代Array,因为Array内置了[Symbol.iterator]()所以可迭代。(字符串也支持,自定义对象实现迭代方法也可以forof)。

    > for of中也存在break和continue以及return,return和break都是直接终止循环。

    2. Array.from(A,B,C):将类数组对象转成数组。(伪数组具备两个特征,1. 按索引方式储存数据 2. 具有length属性。参考Demo可以有一些更高级的用法)
        1. A:伪数组对象。

        2. B:function,对要转化的每一项进行格式化的处理函数,return为处理后的每一项。

        3. C:B中的this指向。

    3. Array.of:解决ES5 new Array不统一的问题。

    4. Array.prototype.fill:填充传入的数组,包括开始索引,不包括结束。

    5. Array.prototype.find:找到符合条件的元素。

    6. Array.prototype.findIndex:找到符合条件的数组元素索引。

    7. Array.prototype.copyWithin(A,B,C):在当前数组内部,将指定位置的成员复制到其他位置(会覆盖原有成员),然后返回当前数组。也就是说,使用这个方法,会修改当前数组。
        1. A:原有数组开启替换的位置。(Y)

        2. B:原有数组需要进行替换取值的开始点。(N)不填从第0个开始,负数从倒数开始。

        3. C:原有数组需要进行替换取值的结束点。(N)不填一直到结束,负数同理。

    8. Array.prototype.values()/keys()/entries():返回的都是Iterator,可以用for of进行处理。
    
复制代码
for (let val of [1, 2, 3]) {
  console.log(val);
}
// 1,2,3

// values() kes() entries()返回的都是iterator对象
for (let item of arr) {
  console.log(item)
}

for (let item of arr.values()) {
  console.log(item)
}

for (let item of arr.keys()) {
  console.log(item)
}

for (let [index, item] of arr.entries()) {
  console.log(index, item)
}


// Array.from()
// [1,1,1,1,1] ES 5用法
let arr = Array(6).join(' ').split('').map(item => 1)
// ES 6 
Array.from({
  length: 5
}, function () {
  return 1
})


//  Array.of()
Array.of(7); // [7]
Array.of(1, 2, 3); // [1, 2, 3]
// Array.of 就是为了解决 ES5中Array的问题
Array(7); // [ , , , , , , ]
Array(1, 2, 3); // [1, 2, 3]

// Array.prototype.fill()
let array = [1, 2, 3, 4]
array.fill(0, 1, 2) // 用0填充 开始位置1 不包括结束2
// 数组第一个索引位置使用0进行填充
// [1,0,3,4]
// 更加优雅的处理初始化数组
Array(5).fill(1)
// [1,1,1,1,1]


// Array.prototype.find()
let array = [5, 12, 8, 130, 44];

let found = array.find(function (element) {
  return element > 10;
});

console.log(found); // 12

// Array.prototype.findIndex()
let array = [5, 12, 8, 130, 44];

let found = array.findIndex(function (element) {
  return element > 10;
});

console.log(found); // 1

// Array.prototype.copyWithin()
let arr = [1, 2, 3, 4, 5]
// 原本arr索引为1的位置开始填充,从第三个位置开始截取
console.log(arr.copyWithin(1, 3)) // [1, 4, 5, 4, 5]
复制代码
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020年09月08日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档