常用的js方法总结

js中常用的方法总结

1.时间格式化

function DateFormat(newDate, format) {
  var date = {
    'M+': newDate.getMonth() + 1,
    'd+': newDate.getDate(),
    'h+': newDate.getHours(),
    'm+': newDate.getMinutes(),
    's+': newDate.getSeconds(),
    'q+': Math.floor((newDate.getMonth() + 3) / 3),
    'S+': newDate.getMilliseconds()
  };

  if (/(y+)/i.test(format)) {
    format = format.replace(RegExp.$1, (newDate.getFullYear() + '').substr(4 - RegExp.$1.length));
  }

  for (var k in date) {
    if (new RegExp('(' + k + ')').test(format)) {
      format = format.replace(RegExp.$1, RegExp.$1.length === 1 ? date[k] : ('00' + date[k]).substr(('' + date[k]).length));
    }
  }

  return format;
}

// 这样写的好处是:可以灵活的输出日期的格式:如 YYYY/mm/dd  或  YYYY-mm-dd

2.数组扁平化的方法

将形如 [1, [2,3,[4,5],6,[7],8],9]数组转化成以为数组, [1,2,3,4,5,6,7,8,9]

    var list = [1,[2,3], [4, [1,2],5,[6,7],8],9]
    var arr = []
    function getArray(list) {
        list.forEach(function(v,i) {
            if(v instanceof Array) { // 判断一个变量是否是数组
                getArray(v) // 递归
            } else {
                arr.push(v)
            }
            
        })
    }
    console.log(getArray(list))

3.判断变量是否符合规则

    var a = '9'
    var b = '9a'
    var Reg = /^\d$/
    var Reg1 = /\d/
    console.log(Reg.test(a), 1)     // true
    console.log(Reg1.test(a), 2)    // true
    console.log(Reg.test(b), 3)     // false
    console.log(Reg1.test(b), 4)    // true
    // Reg1 表示需要匹配的变量中有0-9
    // Reg2 表示需要匹配的标量中只有一个 0-9 之间的数

4.对象数组的过滤

形如: var arr = [{id:1, age:'11'},{id:2, age:'131'},{id:1, age:'121'},{id:2, age:'1122'},{id:3, age:'11'}]

将这个对象以id为过滤条件, 过滤掉重复的

 var arr = [{id:1, age:'11'},{id:2, age:'131'},{id:1, age:'121'},{id:2, age:'1122'},	  			{id:3, age:'11'}]
var air = []
var tem = []
arr.forEach(function(item) {
    tem = tem.map(function(temItem) {
        return temItem.id
    })
    if(tem.indexOf(item.id) == -1) {
        temArr.push(item)
    }
})
console.log(air)

5.js中克隆数组

var arr = [1,2,3,4,5]

var brr = arr.slice(0)

6.数组中合并

var a = [1,2,3]
var b = ['a', 'b']
Array.prototype.push.apply(a,b)

console.log(a)	// a => [1,2,3,'a', 'b']

7.获取数组中的最大值和最小值

var arr = [1,2,5,4,3,7,4,88,544,243,4]
var max = Math.max.apply(Math, arr)  // max = >544
var min = Math.min.apply(Math, arr)  // min => 1

8.短路运算

var a = 1
if(a == 1) {
    hello()
}

等同于
a == 1 && hello()

if(a != 1) {
    hello()
}

等同于
a == 1 || hello()
posted @ 2020-08-10 16:08  littlelittleship  阅读(411)  评论(0)    收藏  举报