1、可以用 Set 对数组去重
let set = new Set(['foo', 'bar', 'food', 'foo'])
let arr = Array.from(set)
console.log(arr) // ['foo', 'bar', 'food']
2、展开多维数组
const arr1 = [1, [2, 3], [[4]]]
arr1.flat(Infinity) // [1, 2, 3, 4]
3、填充数组
Array.property.fill() // fill() 方法用一个固定值填充一个数组中从起始索引到终止索引内的全部元素。不包括终止索引。
// fill 方法接受三个参数 value, start 以及 end. start 和 end 参数是可选的, 其默认值分别为 0 和 this 对象的 length 属性值。
[1, 2, 3].fill(4, 1, 1); // [1, 2, 3]
4、将非数组转为数组
slice
方法可以用来将一个类数组(Array-like)对象/集合转换成一个新数组。你只需将该方法绑定到这个对象上。 一个函数中的 arguments
就是一个类数组对象的例子。
// 类数组或可迭代对象转为数组 Array.from()
Array.from('foo'); // [ "f", "o", "o" ]
function list() {
return Array.prototype.slice.call(arguments);
}
var list1 = list(1, 2, 3); // [1, 2, 3]
5、Array.of() 创建数组
Array.of() 方法创建一个具有可变数量参数的新数组实例,而不考虑参数的数量或类型。
Array.of() 和 Array 构造函数之间的区别在于处理整数参数:Array.of(7) 创建一个具有单个元素 7 的数组,而 Array(7) 创建一个长度为7的空数组(注意:这是指一个有7个空位(empty)的数组,而不是由7个undefined组成的数组)。
Array.of(1, 2, 3); // [1, 2, 3]
Array.of('foo'); // ['foo']
6、 用 apply 将数组各项添加到另一个数组
我们可以使用push将元素追加到数组中。由于push接受可变数量的参数,所以也可以一次追加多个元素。
但是,如果push的参数是数组,它会将该数组作为单个元素添加,而不是将这个数组内的每个元素添加进去,因此我们最终会得到一个数组内的数组。
concat 可以实现这一需求,但是 concat 会返回一个新数组。因此可以用 apply。
let array = ['a', 'b'];
let elements = [0, 1, 2];
array.push.apply(array, elements);
console.info(array); // ["a", "b", 0, 1, 2]
// 且等同于
[].push.apply(array, elements);
网友评论