扩展运算符
扩展运算符...
和rest功能相反,用来将一个数组转换为用逗号分隔的参数序列
function add(x, y) {
return x + y;
}
const numbers = [4, 38];
add(...numbers) // 42
1、Array.from()
Array.from()
方法可以将两类对象转化成真正的数组
- 类数组对象:常见的类数组对象主要是DOM操作返回的NodeList集合和函数内部的arguments对象
- 可遍历对象:部署了Iterator接口的数据结构
Array.of()
Array.of()
方法用于将一组值,转换成数组;用来弥补Array()
不足
Array.of(3, 11, 8) // [3,11,8]
Array.of(3) // [3]
Array.of(3).length // 1
Array() // []
Array(3) // [, , ,]
Array(3, 11, 8) // [3, 11, 8]
只有当Array拥有至少两个参数时才会返回一个数组。
2、find()和findIndex()
find()
方法用于找出第一个符合条件的数组成员,并返回该成员;参数应该是一个回调函数。findIndex()
方法返回数组中第一个符合条件的成员的位置(index)如果没有则返回-1
3、数组的entries()、keys()、values()
这三种方法都是用于遍历数组,返回一个遍历对象,都可以使用for....of
遍历
keys()
用于对键名的遍历values()
用于对键值的遍历entries()
用于对键值对的遍历
4、数组实列的includes()
Array.prototype.includes()
方法返回值是一个布尔值,用来表示某个数组是否包含给定的值。和字符串的includes()方法相似
indexOf方法也可以实现但是存在缺陷:
- 1、找到参数值的第一个出现位置,没有返回-1
- 2、要使用严格相等
===
会导致NaN判断错误
[NaN].indexOf(NaN)
// -1
[NaN].includes(NaN)
// true