ES6学习笔记10:数组推导式

数组推导式

数组推导式Comprehensions已经被ES6标准抛弃,不再推荐在以后的JavaScript中使用。

1
2
// 非标准,不要使用
[for (x of iterable) x]

array.map()和array.filter()

ES6中的数组新加了一些方便的API,这有助于更便捷的操作数组。

1
2
3
4
5
6
let arr = [10, 20, 30, 40, 50].map((value, index) => {
console.log(value); // 依次输出10, 20, 30, 40, 50
console.log(index); // 依次输出1, 2, 3, 4, 5
return value * 2;
});
// 返回的数组arr为[20, 40, 60, 80, 100]

方法arr.map()以一个函数为参数,该函数可以传入两个参数,分别是数组的值和下标,数组中的所有元素依次经过该函数处理后返回的值将组成新的数组。

1
2
3
4
5
6
let arr = [10, 20, 30, 40, 50].map((value, index) => {
console.log(value); // 依次输出10, 20, 30, 40, 50
console.log(index); // 依次输出1, 2, 3, 4, 5
return value > 25;
});
// 返回的数组arr为[30, 40, 50]

数组的array.filter()和array.map()类似,也是以一个带有两个参数value和index的函数为参数。不同的是,该函数的返回值应该是一个布尔值,为真当前这个数组元素保留,为假表示当前这个元素淘汰。效果正如『过滤器(filter)』这个名字的意思。

除此之外,还有很多其它的API,参考3是一个比较全面的API手册。

知识点总结

  1. 注意禁止使用数组推导式;
  2. 掌握数组的map函数和filter函数的使用。

参考

  1. BabelJS - Learn ES2015
  2. Array comprehensions - MDN
  3. Array - MDN