数组的方法
方法 | 描述 |
---|
concat() | 链接两个过着更多的数组,并返回结果 |
join(x) | 将数组以x分隔符分割为字符串 |
pop() | 删除并且返回数组的最后一个元素 |
push() | 数组末尾添加元素 |
reverse() | 点到数组中元素的顺序 |
shift() | 删除并返回数组的第一个元素 |
slice() | 对某个已有的数组返回选定的元素 |
sort() | 对元素进行排序 |
splice() | 删除元素,并向数组添加新元素 |
toSource() | 返回该对象的源代码 |
toString() | 把数组转换为字符串,并返回结果 |
toLocaleString() | 把数组转换为贝蒂数组,并返回结果 |
unshift | 在数组开头添加一个或者更多元素,返回新的数组 |
indexOf | 查找数据在数组中是否存在,返回下标 |
ES6数组新增方法
方法 | 描述 |
---|
… | 扩展运算符可以展开数组、对象 |
apply | 将数组转换为函数的参数 |
call | |
bind | |
form | 将类数组转换为真正的数组 |
of | 用于将一组值转换为数组 |
copyWithin | 数组实例的方法,将指定位置成员复制到其他位置,会覆盖原有成员,然后返回当前数组 |
find | 返回满足条件的第一个项 |
findIndex | 返回满足条件的第一个项的下标 |
entries | 返回一个二维数组 [ key:[val]] |
keys | 找到数组中所有项的键 |
values | 找到数组中所有项的值 |
includes | 返回一个布尔值,表示某个数组是否包含给定的值 |
flat() | 降维,只降低一维 |
flatMap() | 对每个原数组成员执行一个函数 |
forEach | 数组遍历 |
filter | 过滤数组,通过条件返回满足条件的成员,保存到数组当中 |
every | 一假为假,全真为真 |
reduce | 求和等 |
some | 全假为假,一真为真 |
map | 遍历返回新数组 |
二维数组转一维数组
var arr = [1, [2, 3], [4, 5]];
- 方式一 : 利用Array.proptype.flat()
arr.flat()
const newArr = arr.reduce((total, val) => {
return total.concat(val);
}, []);
console.log(newArr);
arr.join().split()
- 方式四: 递归遍历二维数组,判断项是否是数组,然后合并到新的数组当中
function flatArray(array) {
return [].concat(
...array.map((arr) => {
return Array.isArray(arr) ? flatArray(arr) : arr;
})
);
}
function flatArray(array) {
return Array.prototype.concat.apply([], array);
}