-
Array.prototype.reduce()
- 官方说法:reduce() 方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始缩减,最终为一个值。
- 统计数组中的出现内容的数量并输出
- 扁平化一个二维数组
- 求和等操作都可以进行
- 一点感想
reduce
用来累加统计都是蛮方便,还可以确定初始值,初始类型等,而且可以记录很多值
- 累加器累加回调的返回值;
- 数组中正在处理的元素
- 数组中正在处理的当前元素的索引
- 调用reduce的数组
- [可选] 用作第一个调用 callback的第一个参数的值。如果没有提供初始值,则将使用数组中的第一个元素。 在没有初始值的空数组上调用 reduce 将报错
let flattened = [[0, 1], [2, 3], [4, 5]].reduce((a,b)=>a.concat(b), []);
console.log(flattened);//[0,1,2,3,4,5]
// Reduce Exercise
// Sum up the instances of each of these
const data = ['car', 'car', 'truck', 'truck', 'bike', 'walk', 'car', 'van',
'bike', 'walk', 'car', 'van', 'car', 'truck'];
let dataObj = data.reduce((pre, cur) => {
if (pre.hasOwnProperty(cur) !== true) {
pre[cur] = 1;
} else {
pre[cur]++;
}
return pre;
}, {});
console.log(dataObj);
//{car: 5, truck: 3, bike: 2, walk: 2, van: 2}
- object的遍历
entries,keys,values
- 首先使用的时候可以先
let {entries,keys,values} = Object;
- 然后就可以放心大胆的使用了~
entries(XXX),keys(XXX)
……等等
- 当然注意的是
node 6.12
以下不支持 Object.entries
静态方法,被坑了蛮久的Orz,一直以为是自己语法写错了,原来Orz
Array.prototype.map()
Array.prototype.filter()
Array.prototype.some()
Array.prototype.every()
-
Array.prototype.find()
Array.prototype.findIndex()
-
hasOwnProperty()
该方法只能判断自有属性是否存在,对于继承属性会返回false。
-
concat()
方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。