es6新增数组操作的方法

ES6(ECMAScript 2015)为JavaScript引入了许多新特性,其中就包括一系列新的数组操作方法,这些方法极大地增强了数组的处理能力。以下是一些ES6新增的数组操作方法:

  1. Array.from()
    • 将类数组对象(拥有一个length属性和若干索引属性的任何对象)或可迭代对象转换成一个真正的数组。
    • 示例:Array.from(document.querySelectorAll('*')) 将NodeList转换为数组。
  2. Array.of()
    • 创建一个具有可变数量参数的新数组实例,而不考虑参数的数量或类型。
    • 示例:Array.of(1, 2, 3) 等同于 [1, 2, 3]
  3. find()
    • 返回一个数组中满足提供的测试函数的第一个元素的值。否则返回undefined
    • 示例:const array = [5, 12, 8, 130, 44]; const found = array.find(element => element > 10);
  4. findIndex()
    • 返回数组中满足提供的测试函数的第一个元素的索引。否则返回-1。
    • 示例:const array = [5, 12, 8, 130, 44]; const index = array.findIndex(element => element > 10);
  5. fill()
    • 用一个固定值填充一个数组中从起始索引到终止索引内的全部元素。不包括终止索引。
    • 示例:let array = [1, 2, 3, 4]; array.fill(0, 2, 4); 结果为 [1, 2, 0, 0]
  6. copyWithin()
    • 在当前数组内部,将指定位置的成员复制到其他位置(会覆盖原有成员),然后返回当前数组。
    • 示例:let array = [1, 2, 3, 4, 5]; array.copyWithin(0, 3, 5); 结果为 [4, 5, 3, 4, 5]
  7. entries()
    • 返回一个新的Array Iterator对象,该对象包含数组中每个索引的键/值对。
    • 示例:for (let [index, elem] of ['a', 'b'].entries()) { console.log(index, elem); }
  8. keys()
    • 返回一个包含数组中每个索引的Array Iterator。
    • 示例:for (let index of ['a', 'b'].keys()) { console.log(index); }
  9. values()
    • 返回一个新的Array Iterator对象,该对象包含数组每个索引处的值。
    • 示例:for (let elem of ['a', 'b'].values()) { console.log(elem); }
  10. includes()
    • 用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回true,否则返回false
    • 示例:[1, 2, 3].includes(2); // 返回 true

这些新方法极大地提高了JavaScript在处理数组时的灵活性和便利性。

ES6(ECMAScript 2015)引入了大量新的数组方法,增强了数组的处理能力。其中一些重要的新增方法包括: 1. **find**: 这个方法返回数组中满足提供的测试函数的第一个元素,如果没有找到符合条件的,则返回undefined。 ```javascript const numbers = [1, 2, 3, 4, 5]; const result = numbers.find(item => item > 3); // 返回4 ``` 2. **findIndex**: 类似于`find`,但它返回满足条件的第一个元素的索引,找不到则返回-1。 ```javascript const index = numbers.findIndex(item => item == 4); // 返回3 ``` 3. **filter**: 通过测试函数过滤数组,返回一个新的只包含满足条件元素的新数组。 ```javascript const evenNumbers = numbers.filter(item => item % 2 === 0); // 返回[2, 4] ``` 4. **map**: 对数组的每个元素应用一个映射函数,并返回新数组,原数组不变。 ```javascript const squared = numbers.map(item => item * item); // 返回[1, 4, 9, 16, 25] ``` 5. **reduce**: 用于迭代数组并对每个元素应用一个归约函数,最终得到一个单一的累积值。 ```javascript const sum = numbers.reduce((total, num) => total + num, 0); // 返回15 ``` 6. **flat**: 展开嵌套的数组成扁平化的数组。 ```javascript const nestedArray = [[1, 2], [3, 4]]; const flattened = nestedArray.flat(); // 返回[1, 2, 3, 4] ``` 7. **fill**: 将指定值填充到数组从开始到结束的所有元素,支持指定起始和结束位置。 ```javascript numbers.fill(0, 2); // [1, 2, 0, 4, 5] ``` 8. **includes**: 检查数组是否包含某个元素,返回布尔值。 ```javascript const hasThree = numbers.includes(3); // 返回true ``` 这些方法使得处理数组更加方便高效,提高了代码的可读性和简洁度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值