记录JS一些比较实用便捷的小技巧(一)

作者: chouchou723 | 来源:发表于2018-11-19 10:37 被阅读0次

1.使用Boolean过滤数组中的所有假值
假值包括:false,null,0,"",undefined,NaN

const compact = arr => arr.filter(Boolean)

compact([0, 1, false, 2, '', 3, 'a', 'e' * 23, NaN, 's', 34])             // [ 1, 2, 3, 'a', 's', 34 ]

2.取整|0

1.3 | 0         // 1
-1.9 | 0        // -1

3.判断奇偶数(&1)
!!是将值强制转换为boolean值

const num=3;
!!(num & 1)                    // true
!!(num % 2)                    // true

4.精确到指定位数的小数
(e运算,e相当于10的n次方,5e2=5e+2=510^2,5e-2=510^-2)

const round = (n, decimals = 0) => Number(`${Math.round(`${n}e${decimals}`)}e-${decimals}`)
round(1.345, 2)                 // 1.35
round(1.345, 1)                 // 1.3

5.数字补0操作

const addZero1 = (num, len = 2) => (`0${num}`).slice(-len)
const addZero2 = (num, len = 2) => (`${num}`).padStart( len   , '0')
addZero1(3) // 03
addZero2(32,4)  // 0032
  1. 统计数组中相同项的个数
var cars = ['BMW','Benz', 'Benz', 'Tesla', 'BMW', 'Toyota'];
var carsObj = cars.reduce(function (obj, name) {
  obj[name] = obj[name] ? ++obj[name] : 1;
  return obj;
}, {});

carsObj; // => { BMW: 2, Benz: 2, Tesla: 1, Toyota: 1 }

..将数组平铺到指定深度

const flatten = (arr, depth = 1) =>
  depth != 1?arr.reduce((a, v) => a.concat(Array.isArray(v) ? flatten(v, depth - 1) : v), [])
    : arr.reduce((a, v) => a.concat(v), []);

flatten([1, [2], 3, 4]);                             // [1, 2, 3, 4]
flatten([1, [2, [3, [4, 5], 6], 7], 8], 2);           // [1, 2, 3, [4, 5], 6, 7, 8]

8.使用解构删除不必要属性

let {_internal, tooBig, ...cleanObject} = {el1: '1', _internal:"secret", tooBig:{}, el2: '2', el3: '3'};
console.log(cleanObject);                         // {el1: '1', el2: '2', el3: '3'}

相关文章

  • 记录JS一些比较实用便捷的小技巧(一)

    1.使用Boolean过滤数组中的所有假值假值包括:false,null,0,"",undefined,NaN 2...

  • 记录JS一些比较实用便捷的小技巧(二)

    如果跟(一)里有重复 = =就当巩固记忆了 1.数组去重 2.快捷的浅拷贝 3.短路求值(Short-Circu...

  • 记录JS一些比较实用便捷的小技巧(三)

    1.日历获取过去7天的日期等 2.uuid生成有时会碰到后台要前端生成一个uuid给他,那只能自己生成啦 3.获取...

  • JavaScript知识点

    记录JavaScript学习中的一些零碎笔记、知识点、技巧,看似很基础但很实用。 数据类型 比较的奥秘 JS中的各...

  • 一些比较便捷的js操作

    便捷的取整a. var a = 1.2; console.log(~~a);//2b. var a = 1.2|0...

  • Python的一些实用机巧(持续更新)

    前言 ?本文记录Python 中一些比较实用的技巧,都是在实际中可能遇到的问题的解决技巧,持续更新 1、交换变量 ...

  • 实用的JS小技巧

    记录几个在公众号看到的小技巧,源自前端之巅公众号 1. 在循环中缓存数组长度 2. 短路求值 先明确一个概念,JS...

  • Android 开发经验tips(1)

    持续记录一些比较实用的开发技巧~ 1. 扩展绘制 clipChild用来定义他的子控件是否要在他应有的边界内进行绘...

  • linux快捷小技巧(alias)

    linux快捷实用小技巧 场景:linux使用时通常会使用一些命令行方式,比较短的还比较好输入,但是一些组合命令可...

  • Angular4小技巧

    记录一些对于我自己来说,还挺实用的小技巧. 一、按钮可点与不可点之间的切换 需要给按钮设置 disabled="{...

网友评论

    本文标题:记录JS一些比较实用便捷的小技巧(一)

    本文链接:https://www.haomeiwen.com/subject/pnrofqtx.html