不改变原数组
1、将数组转化为字符串
String(str);
将数组转化为字符串并分隔每个元素
arr.join("自定义分隔符");
将数组转化为字符串,可定义分隔符
默认是逗号,也可以自定义连接符、
2、数组拼接和获取子数组:
数组拼接(concat)let newArr = arr.concat(值1,值2,arr1,...);
将concat后的内容,和arr拼接,组成新数组返回
concat的参数中包含数组,则打散数组,以单个元素拼接
数组选取,获取子数组(slice 含头不含尾)
arr.slice(start,end+1); 获得arr中start位置开始,到end位置的所有元素组成的新数组
含头不含尾
省略第二个参数:表示从start一直取到结尾
可支持负数参数:-n表示倒数第n个元素,相当于length-n
let arr=[1,2,3,4]
arr.slice(0)//[1,2,3,4]
arr.slice(0,2)//[1,2]
arr.slice(-3)//[2,3,4]
arr.slice(-3,-1)//[2,3]
3.返回某个指定的字符串值在数组中首次出现的位置(indexOf)
没有返回-1
改变原数组
1.删除,插入,替换 splice()
删除:arr.splice(start,n);
删除arr中start位置开始的n个元素
返回被删除的元素组成的临时新数组
支持负数
插入:arr.splice(start,0,值1,值2,...);
在arr中start位置,插入新值。旧值被向后顺移
要插入的值,只能以单独的参数传入,不支持打散数组参数
start表示第i个 不是数组索引
替换:arr.splice(start,n,值1,值2,...);
删除arr中start位置开始的n个元素,再在start位置插入新元素
删除的元素个数和插入的新元素个数不必相等
2.反转数组元素(reverse)
arr.reverse();
3.对数组的元素进行排序(sort)
将arr中的元素,以字符串方式升序
4.结尾出入栈
入栈:arr.push(值)
向数组的末尾添加一个或多个元素
返回新数组的长度
出栈:arr.pop();
删除数组最后一个元素
返回删除的元素
5.开头出入栈
入栈:arr.unshift(值);
向数组的开头添加一个或更多元素
返回新的长度
出栈:arr.shift();
把数组的第一个元素从其中删除
返回第一个元素的值
迭代方法
以下方法都不会修改数组中包含的值
全部满足条件
Array.every()
对数组中的每一项运行给定的函数,如果该函数对每一项都返回true,则返回true。
部分满足条件
Array.some()
对数组中的每一项运行给定的函数,如果该函数对任一项返回true,则返回true。
一旦找到对应的项,立即停止遍历数组。
过滤
Array.filter()
对数组中的每一项运行给定的函数,返回该函数会返回true的项组成的数组。
Array.forEach
对数组中的每一项运行给定的函数。
这个方法没有返回值。
map
Array.map()
对数组中的每一项运行给定的函数,返回每次函数调用的结果组成的数组。
归并方法 reduce
Array.reduce 从数组中的第一项开始,逐个遍历到最后。
适用场景1:累加
适用场景2:数组处理
适用场景3:将数组转化为对象
静态方法(es6)
1.Array.of(…args)
把一堆文本或者变量转换成数组
2.Array.from(arg);
把类数组,可迭代对象转换数组
实例方法 (es6)
1.find(callback)
查找满足条件的元素
在函数中如果找到符合条件的数组元素就return,并停止查找
2.findIndex(callback)
查找满足条件的元素
3.fill(data)
用指定的数据填充数组
4.includes(data)
是否包含data这个数据
第一个参数必选(待检查的给定值)
第二个参数可选,表示搜索的起始位置,默认为0,负数表示倒数的位置
返回值:Boolean
和indexOf的区别,indexOf进行了运算符的强比对,这个是Object.is()