1.Array.from
Array.from方法用于将两类对象转为真正的数组:
- 类似数组的对象(array-like object):要有length属性。
- 可遍历(iterable)的对象:具有Symbol.iterator接口(包括ES6新增的数据结构Set和Map.可比案例对象是必须,类数组是
Array.from可以接受第二个参数,对每个元素进行处理,将处理后的值放入返回的数组。
Array.from(arrayLike, x => x * x);
// 等同于
Array.from(arrayLike).map(x => x * x);
Array.from([1, 2, 3], (x) => x * x)
// [1, 4, 9]
- Array.from()将字符串转为数组,然后返回字符串的长度。因为它能正确处理各种Unicode字符.
2.Array.of()
Array.of方法用于将一组值,转换为数组。
3.array.copywithin()
array.copywithin(target, start = 0, end = this.length)
将指定位置的成员复制到其他位置(会覆盖原有成员),然后返回当前数组。会修改原数组
4.array.find(callback)
找出第一个回到函数返回值为true的元素
callback(value,index, array)
5.数组的遍历
结合for-of遍历,array.entries(), array.keys(), array.values()
6.array.includes()
是否含有参数,含有则返回true
同indexOf相比的优势,能够判断是否含有NaN
[NaN].indexOf(NaN)// -1
[NaN].includes(NaN)// true
7.array.some(callback) array.every(callback)
使用callback检查数组中的元素是否都满足要求。
- every()所有元素callback返回true,返回true,有一个返回false,就返回false
- some()存在元素使callback返回true,就返回true
8.数组不同方法对于空位的处理
忽略
- forEach(), filter(), every() 和some()都会跳过空位。
- map()会跳过空位,但会保留这个值
- join()和toString()会将空位视为undefined,而undefined和null会被处理成空字符串。
不能够忽略
- Array.from方法,扩展运算符(...)会将数组的空位,转为undefined
- copyWithin()会连空位一起拷贝
- for...of循环也会遍历空位
- entries()、keys()、values()、find()和findIndex()会将空位处理成undefined