对传入的值,转成整数

参考了lodash.js

对传入的值,转成整数。如有更好的方法,大家一起多多交流。


  // 转换成整数
  function toInteger(num) {
    let _num = +num;
    
    if (isNaN(_num)) {
      return 0;
    }

    if (_num === Infinity || _num === -Infinity) {
      const sign = (_num < 0 ? -1 : 1);
      return sign * Number.MAX_VALUE;
    }

    if (_num < 0) {
      _num = Math.ceil(_num);
    } else {
      _num = Math.floor(_num);
    }

    return _num;
  }

  console.log(toInteger('') + " -- ''");
  console.log(toInteger({}) + " -- {}");
  console.log(toInteger([]) + " -- []");
  console.log(toInteger(function(){}) + " -- function(){}");
  console.log(toInteger(null) + " -- null");
  console.log(toInteger(Infinity) + " -- Infinity");
  console.log(toInteger(-Infinity) + "-- -Infinity");
  console.log(toInteger(-1) + " -- -1");
  console.log(toInteger(-1.02) + " -- -1.02");
  console.log(toInteger('1m') + " -- 1m");
  console.log(toInteger('1234') + " -- 1234");
  console.log(toInteger('-1.23') + " -- -1.23");
  console.log(toInteger('-1.6') + " -- -1.6");
  console.log(toInteger('+8439') + " -- +8439");
  console.log(toInteger('84%39') + " -- 84%39");
  console.log(toInteger('84+39') + " -- 84+39");
  console.log(toInteger(false) + " -- false");
  console.log(toInteger(true) + " -- true");
  console.log(toInteger(070) + " -- 070");

 

posted @ 2019-02-26 14:12  樱缘  阅读(126)  评论(0编辑  收藏  举报