JS一些语法练习总结,持续更新ing

  • Array.prototype.reduce()
    • 官方说法:reduce() 方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始缩减,最终为一个值。
    • 统计数组中的出现内容的数量并输出
    • 扁平化一个二维数组
    • 求和等操作都可以进行
    • 一点感想reduce用来累加统计都是蛮方便,还可以确定初始值,初始类型等,而且可以记录很多值
      1. 累加器累加回调的返回值;
      2. 数组中正在处理的元素
      3. 数组中正在处理的当前元素的索引
      4. 调用reduce的数组
      5. [可选] 用作第一个调用 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()
    方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。

你可能感兴趣的:(JS一些语法练习总结,持续更新ing)