一、查找类
1、find:array.find(function(currentValue, index, arr),thisValue),第二个参数基本不使用,返回查找到的元素,查找不到返回undefined,不改变原数组;
2、findIndex:array.findIndex(function(currentValue, index, arr), thisValue),返回查找到的元素对应的索引位置,查找不到返回-1,不改变原数组;
3、indexOf:array.indexOf(item,start = 0),start参数如果不传则从索引位置0开始检索,返回查找到的元素第一次出现的索引位置,查找不到返回-1;
4、lastIndexOf:同indexOf,但返回的是查找到的元素最后一次出现的索引位置;
5、includes:arr.includes(searchElement, fromIndex = 0),fromIndex不传则从索引位置0开始检索,可为负值,开始检索位置为array.length + fromIndex,返回true或false;
二、遍历类
1、forEach:array.forEach(function(currentValue, index, arr), thisValue),用于调用数组的每个元素,并将元素传递给回调函数,return不能结束遍历,类似continue的效果,不修改原数组;
2、map:array.map(function(currentValue,index,arr), thisValue),返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值,不修改原数组;
3、every:array.every(function(currentValue,index,arr), thisValue),用于检测数组所有元素是否都符合指定条件,检测到不符合的返回false并结束遍历,否则返回true,不修改原数组;
4、some:array.some(function(currentValue,index,arr),thisValue),用于检测数组中的元素是否满足指定条件,检测到符合的返回true并结束遍历,否则返回false,不修改原数组;
5、filter:array.filter(function(currentValue,index,arr), thisValue),创建一个新的数组,获取数组中符合条件的所有元素,不修改原数组;
6、reduce:array.reduce(function(total, currentValue, currentIndex, arr), initialValue),接收一个函数作为累加器,不修改原数组;
7、reduceRight:同reduce,不过累加方向相反;
三、增删改查类
1、push:array.push(item1, item2, ..., itemX),向数组的末尾添加一个或多个元素,并返回新的长度,会修改原数组;
2、pop:array.pop(),删除数组的最后一个元素并返回删除的元素,会修改原数组;
3、shift:array.shift(),删除数组的第一个元素并返回删除的元素,修改原数组;
4、unshift:array.unshift(item1,item2, ..., itemX),向数组的开头添加一个或更多元素,并返回新的长度,会修改原数组;
5、reverse:array.reverse(),颠倒数组中元素的顺序,会修改原数组;
6、fill:array.fill(value, start, end),根据传入索引值,将这些元素全部替换成value值,只传value值则整个数组元素值都换成value值,会修改原数组;
7、copyWithin:array.copyWithin(target, start, end),从数组的指定位置拷贝元素到数组的另一个指定位置target中,不会修改数组的长度;
8、sort:array.sort(sortfunction),对数组的元素进行排序,默认是按字母升序,则排序可能会是这样(12,30,4),数字升序可以这么写:array.sort((a,b) => a-b),会修改原数组;
9、splice:array.splice(index,howmany,item1,.....,itemX),添加或删除数组中的元素,传入的item是要添加的新元素,index是删除和新增的位置,会修改原数组;
四、拼接&转换
1、concat:array1.concat(array2,array3,...,arrayX),连接两个或多个数组,返回连接后的新数组,不会修改原数组;
2、join:array.join(separator),通过传入的字符连接数组每一项,生成一个字符串,不传参数则默认逗号连接,会修改原数组;
3、toLocaleString:Date.toLocaleString(),根据本地时间把 Date 对象转换为字符串,会修改原数组;
4、toString:array.toString(),把数组转换为字符串,逗号分隔,会改变原数组;
五、扁平类
1、flat:array.flat(number),对多维数组降维,number值是几就将多维数组降几维,不知道几维的数组降维一维,number传infinity,会修改原数组;
2、flatMap:array.flatMap(() => {}),类似于map方法,但会展开一层数组,不会修改原数组;
六、静态方法
1、isArray:Array.isArray(obj),判断一个对象obj是否为数组,返回true或false;
2、of:Array.of(num1,num2,...),用于将一组数值转换为数组;
3、from:Array.from(object, mapFunction, thisValue),通过拥有 length 属性的对象或可迭代的对象来返回一个数组;
七、generator类
1、keys:array.keys(),从数组创建一个包含数组键的可迭代对象;
2、values:array.values (),从数组创建一个包含数组值的可迭代对象;
3、entries:array.entries(),返回一个数组的迭代对象,该对象包含数组的键值对。