数组的方法

方法 描述
concat() 链接两个过着更多的数组,并返回结果
join(x) 将数组以 x 分隔符分割为字符串
pop() 删除并且返回数组的最后一个元素
push() 数组末尾添加元素
reverse() 点到数组中元素的顺序
shift() 删除并返回数组的第一个元素
slice() 对某个已有的数组返回选定的元素
sort() 对元素进行排序
splice() 删除元素,并向数组添加新元素
toSource() 返回该对象的源代码
toString() 把数组转换为字符串,并返回结果
toLocaleSting() 把数组转换为贝蒂数组,并返回结果
unshift 在数组开头添加一个或者更多元素,返回新的数组
indexOf 查找数据在数组中是否存在,返回下标

es6 数组新增方法

方法 描述
扩展运算符可以展开数组、对象
apply 将数组转换为函数的参数
form 将类数组转换为真正的数组
of 用于将一组值转换为数组
copyWithin 数组实例的方法,将指定位置成员复制到其他位置,会覆盖原有成员,然后返回当前数组
find 返回满足条件的第一个项
findIndex 返回满足条件的第一个项的下标
entries 返回一个二维数组 [ key:[val]]
keys 找到数组中所有项的键
values 找到数组中所有项的值
includes 返回一个布尔值,表示某个数组是否包含给定的值
flat() 降维,只降低一维
flatMap() 对每个原数组成员执行一个函数
forEach 数组遍历
filter 过滤数组
every 一假为假,全真为真
reduce 求和等
some 全假为假,一真为真
map 遍历返回新数组

二维数组转一维数组

1
var arr = [1, [2, 3], [4, 5]];

方式一:
利用 Array.protype.flat()

1
arr.flat();

方式二:
使用 reduce 遍历数组做数组合并

1
2
3
4
5
const newArr = str.reduce((total, val) => {
return total.concat(val);
}, []);

console.log(newArr);

方式三:
利用字符串的特性实现

1
arr.join().split();

方式四:
递归遍历二维数组,判断项是否是数组,然后合并到新的数组当中

1
2
3
4
5
6
7
function flatArray(array) {
return [].concat(
...array.map((arr) => {
return Array.isArray(arr) ? flatArray(arr) : arr;
})
);
}

方式五:

1
2
3
function flatArray(array) {
return Array.prototype.concat.apply([], array);
}