小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
创建数组的几种方式
我们先说说有几种方式创建数组:
- 数组对象字面量
- new Array()
只有一个参数的时候,其作为数组的长度。 这个是个坑点。 - Array.from
- Array.of 与new Array, Array的区别在于,只有一个参数时,是作为元素,而不是作为长度。
- Array.prototype.slice, Array.prototype.concat等等, 其他方法创建新数组
// 字面量
var arr = [...[1,2,3]]; // 1,2,3
// new Array
var arr2 = new Array(1,2,3); // 1,2,3,4
// new Array
var arr3 = new Array(1) // [empty];
// Array.of
var arr33 = Array.of(1) // [1]
// Array.from
var arr4 = Array.from([1,2,3]); // [1,2,3]
// Array.from
var arr4 = Array.from({length:3}, function(value,index){
return index + 1
}); // [1,2,3]
// Array.prototype.slice
Array.prototype.slice.call(document.querySelectorAll("div")) // [div, div, div....]
// Array.prototype.concat
Array.prototype.concat.call([], [1,2,3]) // [1,2,3]
查找类
Array.prototype.find
查找满足条件的值。
Array.prototype.findIndex
查找满足条件的值得索引。
Array.prototype.includes
ES6+语法, 是否包含某个值。 判断是否为某个选项值得时候,非常有用。
比如下面检查是不是一个有效的属性键。
const KEY_LIST = ["number","string","symbol"];
if(KEY_LIST.includes(key)){
console.log("有效的属性key")
}
Array.prototype.some
是否至少有1个元素满足条件。
Array.prototype.every
是否所有元素满足条件。
Array.prototype.indexOf
找到一个给定元素的第一个索引值。
Array.prototype.lastIndexOf
找到一个给定元素的最后一个索引值。
Array.prototype.at
通过索引值获取元素,支持负数。
Array.prototype.filter
满足某些条件的元素集合。
增删改
Array.prototype.slice
截取一部分元素生成新数组。 也常用语把类数组转换成数组。
Array.prototype.splice
删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容。 这个方法不改变元素组,常用来删除数组。
var arr = [0];
arr.splice(0,1, 2,3); // [0] 删除的元素
console.log(arr); // [2,3]
Array.prototype.concat
数组拼接。
Array.prototype.copyWithin
复制数组的一部分到同一数组中的另一个位置。
var array1 = [1,2,3];
console.log(array1.copyWithin(0, 1, 3)); // [2,3,3]
Array.prototype.fill
填充数组。
Array.prototype.pop
删除最后一个元素,并返回。
Array.prototype.push
将一个或多个元素添加到数组的末尾
Array.prototype.shift
删除第一个元素,并返回
Array.prototype.unshift
将一个或多个元素添加到数组的开头
Array.prototype.reverse
反转数据
Array.prototype.sort
数排序
遍历
Array.prototype.forEach
遍历
Array.prototype.map
映射
Array.prototype.reduce
映射成新数组
Array.prototype.reduceRight
从右到左,映射成新数组
其他
Array.prototype.values
值Array Iterator
Array.prototype.keys
键Array Iterator
Array.prototype.entries
键/值对Array Iterator
Array.prototype.flat
转一维数组
Array.prototype.flatMap
映射函数映射每个元素,然后将结果压缩成一个新数组
Array.prototype.join
拼接返回字符串。
小结
今天你收获了吗?