创建数组的方法
Array.of(): 创建包含所有传入参数的数组。 Array.from(): 从类数组或可迭代对象创建数组。
let arr1 = Array. of ( 1 , 2 , 3 ) ;
let arr2 = Array. from ( 'hello' ) ;
添加/删除元素
push(): 在数组末尾添加一个或多个元素,返回新数组的长度。 pop(): 删除数组末尾的一个元素,返回该元素。 unshift(): 在数组开头添加一个或多个元素,返回新数组的长度。 shift(): 删除数组开头的一个元素,返回该元素。 splice(): 从数组中添加/删除元素,返回被删除的元素。如果未规定第二个参数,则删除从 index 开始到原数组结尾的所有元素。改变原数组
let arr = [ 1 , 2 , 3 ] ;
arr. push ( 4 ) ;
arr. pop ( ) ;
arr. unshift ( 0 ) ;
arr. shift ( ) ;
arr. splice ( 1 , 1 , 'a' ) ;
arr. splice ( 1 , 0 , 'a' ) ;
查找元素
indexOf(): 返回元素在数组中的第一个索引,没有则返回 -1。 lastIndexOf(): 返回元素在数组中的最后一个索引,没有则返回 -1。 includes(): 检查数组是否包含某个元素,返回布尔值。 find(): 返回满足提供的测试函数的第一个元素的值。 findIndex(): 返回满足提供的测试函数的第一个元素的索引。
let arr = [ 1 , 2 , 3 , 2 ] ;
arr. indexOf ( 2 ) ;
arr. lastIndexOf ( 2 ) ;
arr. includes ( 3 ) ;
arr. find ( x => x > 1 ) ;
arr. findIndex ( x => x > 1 ) ;
迭代方法
for 循环或 for…of 循环 forEach(): 对数组的每个元素执行一次提供的函数。return 语句会退出当前的回调函数,但 forEach 循环会继续处理数组中的下一个元素,forEach函数没有返回值,和上面两个循环一样 map(): 创建一个新数组,其结果是该数组中的每个元素调用一次提供的函数后的返回值。新数组的长度与原数组的长度一致 filter(): 创建一个新数组,其中包含所有通过提供的函数实现的测试的元素。 reduce(): 对数组中的每个元素执行一个 reducer 函数,最终得到一个值。 reduceRight(): 从右到左对数组中的每个元素执行一个 reducer 函数,最终得到一个值。 every(): 测试数组的所有元素是否都通过了指定函数的测试,返回布尔值。return停止循环 some(): 测试数组中的某些元素是否至少有一个通过了指定函数的测试,返回布尔值。return停止循环
let arr = [ 1 , 2 , 3 , 4 ] ;
arr. forEach ( x => console. log ( x) ) ;
let doubled = arr. map ( x => x * 2 ) ;
let evens = arr. filter ( x => x % 2 === 0 ) ;
let sum = arr. reduce ( ( acc, x ) => acc + x, 0 ) ;
let sumRight = arr. reduceRight ( ( acc, x ) => acc + x, 0 ) ;
arr. every ( x => x > 0 ) ;
arr. some ( x => x > 3 ) ;
排序和翻转
sort(): 对数组的元素进行排序并返回该数组。 reverse(): 颠倒数组中元素的顺序并返回该数组。
let arr = [ 3 , 1 , 4 , 2 ] ;
arr. sort ( ) ;
arr. reverse ( ) ;
连接、切割、复制
concat(): 合并两个或多个数组,不改变现有数组,返回一个新数组。 slice(): 返回一个从开始到结束(不包括结束)选择的数组的一部分。 join(): 将数组的所有元素连接成一个字符串。
let arr1 = [ 1 , 2 ] ;
let arr2 = [ 3 , 4 ] ;
let arr3 = arr1. concat ( arr2) ;
let arr4 = arr3. slice ( 1 , 3 ) ;
let str = arr4. join ( '-' ) ;
其他方法
fill(): 用一个固定值填充数组中的从起始索引到终止索引(不包括终止索引)的全部元素。可以使用负数索引来表示从数组末尾开始的相对位置。改变原数组,并返回修改后的原数组 copyWithin(): 从数组的指定位置拷贝元素到数组的另一个指定位置中。它会改变原数组,并返回修改后的数组 target:复制开始的位置的索引。start(可选):复制元素的起始位置的索引(包含该位置)。默认是 0。end(可选):复制元素的结束位置的索引(不包含该位置)。默认是数组的长度。
let arr = [ 1 , 2 , 3 , 4 ] ;
arr. fill ( 0 , 2 , 4 ) ;
arr. fill ( 0 , - 3 , - 1 ) ;
arr. copyWithin ( 2 , 0 , 2 ) ;