数组
api:
1.push :
在数组最后添加元素,可以一个或多个,返回长度,改变原数组;
2. pop:
删除数组最后一个元素,返回删除前的长度,改变原数组;
3.shift:
删除数组第一个元素,返回被删除的元素,改变原数组
4.unshift:
在数组的最前面添加元素,可以一个也可以多个,返回最新长度,改变原数组;
5.reverse:
将数组翻转,返回翻转后的数组,改变原数组
6.sort:
排序 ;例子:const arr=[1,2.,4534534,54654656,56767,6576576];
arr.sort((a,b)=>a-b);//升序
arr.sort((a,b)=>b-a);//降序
改变原数组;
7.slice:
获取子数组,不改变原数组,可以是一个参数或两个参数
一个参数时:表示提取子数组的开始位置,直到结束;
两个参数时,第一个表示开始位置,第二个表示结束位置(不包含结束位置);
8.concat
拼接,可以是数组的拼接也可以数组拼接一个或者几个元素,不改变原数组,
var array =[1,2],array1=['q','w'],array2=[3,4];
array.concat(array1,array2);arrary(1,2,3,'riuerit');
9.splice
切割,插入,替换
多个参数;
当一个参数时:是数字:
当是0时:将原数组置空; 返回的新数组是原数组,
var arr= [1,2,3,4];
var a= splice(0);
arr //[]
a // [1,2,3,4];
当是大于零是数字时,原数组就是之前的参数长度的数组,返回的是从参数开始到最后的数组
var arr= [1,2,3,4];
var a= splice(2);
arr //[12]
a // [3,4];
当小于0时:原数组是除去倒数项的长度,返回的是最后n项
var arr= [1,2,3,4];
var a= splice(-1);
arr //[1,2,3]
a // [4];
当参数是两个时,都是数字
var arr= [1,2,3,4]
var a= splice(a,b);
a是开始位置,不包括,b是长度
当是三个及以上参数时
第一个和第二个是截取的起始位置,后边的是替代截取出来的项;
10.indexOf
判断某元素是否在该数组中,
一个参数时是这搜索之歌元素,
两个时,第一个是该元素,第二个是开始搜索的位置
该数组中有该元素是返回第一次出现的位置,没有时返回-1;
11.every :
对数组的每一项运行给定函数,如果数组的每一项都返回true,则返回true
12.some :
对数组的每一项运行给定函数,如果数组的任一项都返回true,则返回true。
13.filter:
对数组的每一项运行给定函数,返回该函数中会返回true的项组成的数组
14.map:
对数组的每一项运行给定函数,有返回每次函数调用的结果组成的数组。
15.forEach:
对数组的每一项运行给定函数,这个方法没有返回值。本质上与使用for循环迭代数组是一样的。
16.
reduce: 对累加器和数组中的每个元素 (从左到右)应用一个函 数,将其减少为单个值
用法:
array.reduce(function(accumulator, currentValue, currentIndex, array), initialValue)
注意:
不提供 initialValue ,reduce 会从索引1的地方开始执行 callback 方法,跳过第一个索引。提供 initialValue ,从索引0开始。如果数组为空并且没有提供initialValue, 会抛出TypeError 。如果数组仅有一个元素(无论位置如何)并且没有提initialValue, 或者有提供initialValue但是数组为空,那么此唯一值将被返回并且callback不会被执行。提供 initialValue 通常更安全。返回一个最终的累加值。
17.reduceRight 除了合并位置相反其他与reduce一样;
18.includes:
判断一个数组是否包含一个指定的值,如果是,酌情返回 true或 false。
19.find
方法返回数组中满足提供的测试函数的第一个元素的值,如果没有返回undefined
20.findindex
返回数组中满足提供的测试函数的第一个元素的索引。否则返回-1。
21.join
将数组转化为字符串,不改变原数组
22.toLocaleString() 返回一个字符串表示数组中的元素。数组中的元素将使用各自的 toLocaleString 方法转成字符串,这些字符串将使用一个特定语言环境的字符串(例如一个逗号 ",")隔开
23.toString() 返回一个字符串,表示指定的数组及其元素
24.JSON.stringify
25. ...
将一个数组转为用逗号分隔的参数序列。该运算符主要用于函数调用。
const arr = [1,2,3,4];
console.log(...arr);//1 2 3 4;
应用:函数参数
function(x,y,z){}<==>const arr=[x,y,z];function(...arr){}
克隆数组;
const arr1=[1,2,3],arr2;
arr2=[...arr1]或[...arr2]=a1;
合并数组
const arr1=[1,2,3] , arr2=[4,5,6],arr3=['q','e'];
如果用es5这样写
arr1.connect(arr2,arr3);
es6这样写
[...arr1,...arr2,...arr3];
与解构赋值组合使用:
const [a, ...arr]=[1,2,3,4,54];//a=1;arr=[2,3,4,54]
...arr,必须在最后面,
将字符串转为真数组
[...'京东方技术的积分水电费技术的积分时代峰峻适得府君书两地分居司法局']
26:Array.from
能将字符串,伪数组转化为真数组
27:Array.of
总是返回参数值组成的数组。如果没有参数,就返回一个空数组。
Array.of() // []
Array.of(undefined) // [undefined]
Array.of(1) // [1]
Array.of(1, 2) // [1, 2]
28.flat:将多维数组拉为低维数组,flat(n),n为拉的次数,要是想拉为以为可以直接flat(Infinity),返回一个新数组,不改变原数组
29.flatMap