Array Methods
find/findIndex/includes
- array.find是一个高阶函数, 会返回匹配回调函数内符合的第一个元素。
1
2
3
4
5
6
7
8
9
10
11var arr = [{a: 1}, {a: 2}, {a: 3}];
arr.find(function match(v){
return v && v.a > 1;
});
// {a: 2}
// 条件不符合的时候返回undefined
arr.findIndex(function match(v) {
return v && v.a > 10;
}); // -1 - includes 运算符
1
2
3
4
5var arr = [10, 20, NaN];
arr.includes(10);
arr.includes(NaN);
flat & flatMap
- Array.flat: flat() 方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。
depth 可选: 指定要提取嵌套数组的结构深度,默认值为 1。
使用flat函数会移除所有的空项 [1, 2, 3, , 5] => [1, 2, 3, 5]
1 | [1, 2, 3, [4, 5, [6, 7]]].flat(); // 默认展开的层级是1 |
- Array.flatMap: flatMap() 方法首先使用映射函数映射每个元素,然后将结果压缩成一个新数组。它与 map 和 深度值1的 flat 几乎相同,但 flatMap 通常在合并成一种方法的效率稍微高一些。
简而言之, 用cb处理数组, 再把数组扁平化
1 | let arr = ["今天天气不错", "", "早上好"] |