欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ES6 数组

程序员文章站 2022-07-13 08:42:30
...

数组创建

Array.of()

将参数中所有值作为元素形成数组。
ES6 数组
参数值可为不同类型
参数为空时返回空数组

console.log(Array.of(1, '2', true)); // [1, '2', true]
console.log(Array.of()); // []
Array.from()

将类数组对象或可迭代对象转化为数组。
ES6 数组
参数为数组,返回与原数组一样的数组
参数含空位

console.log(Array.from([1, , 3])); // [1, undefined, 3]
参数
Array.from(arrayLike[, mapFn[, thisArg]])
arrayLike
// 想要转换的类数组对象或可迭代对象。
console.log(Array.from([1, 2, 3])); // [1, 2, 3]
mapFn
// 可选,map 函数,用于对每个元素进行处理,放入数组的是处理后的元素。
console.log(Array.from([1, 2, 3], (n) => n * 2)); // [2, 4, 6]
thisArg
// 可选,用于指定 map 函数执行时的 this 对象。
let map = {
    do: function(n) {
        return n * 2;
    }
}
let arrayLike = [1, 2, 3];
console.log(Array.from(arrayLike, function (n){
    return this.do(n);
}, map)); // [2, 4, 6]

ES6 数组

类数组对象

一个类数组对象必须含有 length 属性,且元素属性名必须是数值或者可转换为数值的字符。
ES6 数组
没有 length 属性,则返回空数组
元素属性名不为数值且无法转换为数值,返回长度为 length 元素值为 undefined 的数组

转换可迭代对象

转换 map

ES6 数组

转换 set

···
let arr = [1, 2, 3];
let set = new Set(arr);
console.log(Array.from(set)); // [1, 2, 3]
···

转换字符串
let str = 'abc';
console.log(Array.from(str)); // ["a", "b", "c"]

扩展的方法

查找

find()

查找数组中符合条件的元素,若有多个符合条件的元素,则返回第一个元素
ES6 数组

findIndex()

查找数组中符合条件的元素索引,若有多个符合条件的元素,则返回第一个元素索引
ES6 数组

填充

fill()

将一定范围索引的数组元素内容填充为单个指定的值。

let arr = Array.of(1, 2, 3, 4);
// 参数1:用来填充的值
// 参数2:被填充的起始索引
// 参数3(可选):被填充的结束索引,默认为数组末尾
console.log(arr.fill(0,1,2)); // [1, 0, 3, 4]
copyWithin()
// 参数1:被修改的起始索引
// 参数2:被用来覆盖的数据的起始索引
// 参数3(可选):被用来覆盖的数据的结束索引,默认为数组末尾
console.log([1, 2, 3, 4].copyWithin(0,2,4)); // [3, 4, 3, 4]

包含

includes()

数组是否包含指定值。
注意:与 Set 和 Map 的 has 方法区分;Set 的 has 方法用于查找值;Map 的 has 方法用于查找键名。

// 参数1:包含的指定值
[1, 2, 3].includes(1);    // true
 
// 参数2:可选,搜索的起始索引,默认为0
[1, 2, 3].includes(1, 2); // false
 
// NaN 的包含判断
[1, NaN, 3].includes(NaN); // true

上一篇: 集合(set)

下一篇: 集合set