ES6和ES7新增的数组方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_25354709/article/details/82714890

ES6和ES7新增的数组方法

  • forEach和箭头函数
  • for...of
  • @@iterator
  • copyWithin
  • entries
  • includes
  • find
  • findIndex
  • fill
  • from
  • keys
  • of
  • values

1.使用forEach和箭头函数迭代

箭头函数可以简化forEach方法

var numbers = [1,2,3];
numbers.forEach(function (x) {
    console.log(x); // 1 2 3
});

numbers.forEach(x => {
    console.log(x); // 1 2 3
});

2.使用for...of循环迭代

ES6还引入了迭代数组值的for...of循环

var numbers = [1,2,3];
for (let n of numbers) {
	console.log(n); // 1 2 3
}

3.使用ES6新的迭代器 ( @@iterator)

ES6还为Array类增加了一个@@iterator属性,需要通过Symbol.iterator来访问

let numbers = [1,2,3];
let iterator = numbers[Symbol.iterator]();
console.log(iterator);
console.log(iterator.next().value); //1
console.log(iterator.next().value); //2
console.log(iterator.next().value); //3
console.log(iterator.next().value); //undefined

4.数组的entries、keys和values方法

ES6还增加了三种从数组中得到迭代器的方法 entries、keys和values方法

entries方法返回包含键值对的@@iterator

let numbers = [1,2,3];
let aEntries = numbers.entries();   //得到键值对的迭代器
console.log(aEntries);
console.log(aEntries.next().value); //[0, 1] - [位置0的值为1]
console.log(aEntries.next().value); //[1, 2] - [位置1的值为2]
console.log(aEntries.next().value); //[2, 3] - [位置2的值为3]
console.log(aEntries.next().value); //undefined

 keys方法返回包含数组索引的@@iterator

let numbers = [1,2,3];
let aKeys = numbers.keys();      //返回数组的索引
console.log(aKeys);
console.log(aKeys.next().value); //0
console.log(aKeys.next().value); //1
console.log(aKeys.next().value); //2
console.log(aKeys.next().value); //undefined

 values方法返回的@@iterator则包含数组的值

let numbers = [1,2,3];
let aValues = numbers.values();   //返回数组的索引
console.log(aValues);
console.log(aValues.next().value); //1
console.log(aValues.next().value); //2
console.log(aValues.next().value); //3
console.log(aValues.next().value); //undefined

5.使用from方法

Array.from方法根据已有的数组创建一个新数组

 

猜你喜欢

转载自blog.csdn.net/qq_25354709/article/details/82714890
今日推荐