问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

ES6中数组新的API详解

创作时间:
作者:
@小白创作中心

ES6中数组新的API详解

引用
1
来源
1.
https://www.kdun.cn/ask/800774.html

ES6(ECMAScript 2015)为数组引入了多个新的API,这些新方法极大地丰富了数组的操作方式,使得代码更加简洁、高效和易读。以下是ES6中新增的数组API及其详细解释和示例:

Array.from()

Array.from()方法可以从一个类数组对象或可迭代对象(如字符串、Set、Map等)创建一个新的数组实例。它接受两个参数:第一个是必需的来源对象,第二个是可选的映射函数,用于对每个元素执行操作。

示例:

const arrayLike = {0: 'a', 1: 'b', 2: 'c', length: 3};
const arr = Array.from(arrayLike);
console.log(arr); // 输出: ['a', 'b', 'c']

const set = new Set(['a', 'b', 'c']);
const arrFromSet = Array.from(set);
console.log(arrFromSet); // 输出: ['a', 'b', 'c']

Array.of()

Array.of()方法用于将一组值转换为数组,它可以接收任意数量的参数,而不考虑参数的数量或类型。

示例:

const arr1 = Array.of(1, 2, 3);
console.log(arr1); // 输出: [1, 2, 3]

const arr2 = Array.of(7);
console.log(arr2); // 输出: [7]

find() 和 findIndex()

find()方法返回数组中满足提供的测试函数的第一个元素的值,如果没有找到满足条件的元素,则返回undefined

findIndex()方法与find()类似,但它返回满足条件的元素的索引,如果未找到则返回-1

示例:

const array = [5, 12, 8, 130, 44];
const found = array.find(element => element > 10);
console.log(found); // 输出: 12

const index = array.findIndex(element => element > 10);
console.log(index); // 输出: 1

fill()

fill()方法用一个固定值填充数组的全部元素,它可以接收三个参数:要填充的值、起始索引(默认为0)和结束索引(默认为数组长度)。

示例:

const array = [1, 2, 3, 4, 5];
array.fill(0, 2, 4);
console.log(array); // 输出: [1, 2, 0, 0, 5]

copyWithin()

copyWithin()方法浅复制数组的一部分到同一数组中的另一个位置,并返回它,而不改变其大小。它接受三个参数:目标起始索引、源起始索引(默认为0)和源结束索引(默认为数组长度)。

示例:

const array = [1, 2, 3, 4, 5];
array.copyWithin(0, 3);
console.log(array); // 输出: [4, 5, 3, 4, 5]

entries()、keys() 和 values()

这些方法分别返回数组的键/值对、键和值的迭代器,它们可以用于for...of循环或扩展运算符中。

示例:

const array = ['a', 'b', 'c'];
const iterator = array.entries();
for (const [index, value] of iterator) {
  console.log(index, value); // 输出: 0 'a', 1 'b', 2 'c'
}

includes()

includes()方法用于判断一个数组是否包含一个指定的值,根据情况返回truefalse。它使用同值比较(即===,而不是==)来判断相等性。

示例:

const array = [1, 2, 3];
console.log(array.includes(2)); // 输出: true
console.log(array.includes(4)); // 输出: false

相关问答FAQs

  1. Array.from()Array.of()有什么区别?

    Array.from()用于从类数组对象或可迭代对象创建新数组,可以接收两个参数(来源对象和映射函数),而Array.of()用于将多个值组合成一个新的数组实例,只能接收单个参数或多个参数(不包括映射函数)。

  2. :如何找到数组中满足特定条件的第一个元素的索引?

    :可以使用findIndex()方法,它接收一个测试函数作为参数,返回满足该函数的第一个元素的索引,如果未找到满足条件的元素,则返回-1

    const index = array.findIndex(element => element > 10);
    

ES6为数组引入的新API极大地丰富了数组的操作方式,使得代码更加简洁、高效和易读。无论是从类数组对象创建数组、组合多个值成数组,还是查找满足条件的元素及其索引、填充数组等操作,都变得更加方便和直观。开发者可以根据具体需求灵活运用这些新特性,编写出更加优雅和高效的代码。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号