JS常用

排序

数组排序

//正序
Array.sort()

//范旭
Array.reverse()

数组对象排序

/*
 * 数组对象排序
 */
const compare = function(prop) {
  return function(obj1, obj2) {
    let val1 = obj1[prop];
    let val2 = obj2[prop];
    if (!isNaN(Number(val1)) && !isNaN(Number(val2))) {
      val1 = Number(val1);
      val2 = Number(val2);
    }
    if (val1 < val2) {
      return -1;
    } else if (val1 > val2) {
      return 1
    } else {
      return 0
    }
  }
}

//调用   正序
ArrayObject.sort(compare('ObjectPropName'))

//反序
ArrayObject.sort(compare('ObjectPropName')).reverse()

三目运算符

// 传统写法
if (true) {
    // do true somethings
} else {
    // do fasle somethings
}

// 在三目运算符中只能有一句代码,可以把代码块封装成方法
true ? 'true things' : 'fasle things'

true ? function(parames) {}() : function(parames) {}()

true ? (function(parames) {})(parames) : (function(parames) {})(parames)

// 多重混用

var true1 = true, true2 = true

true1 ? true2 ? 'true2 true' : 'true2 fasle' : 'true1 fasle'

IF and FOR

IF
在if括号中的内容当值为null, undefined, ‘’(空值)的时候均为false

for循环多种写法

var arr = [1, 3, 5, 6, 9]
for (var i = 0; i < arr.length; i++) {
    console.log(arr[i])
}

// for
for (var i = arr.length - 1; i >= 0; i--) {
    console.log(arr[i])
}

// for in
for(var i in arr) {
    console.log(arr[i])
}

// foreach
arr.forEach((key, value) => {
    console.log(key, value)
})

// map
arr.map(function(index, elem) {
    console.log(key, value)
})

// 也可以自定原型

Array.循环()

在 if 和 for 后面只有一句表达式的时候可以不用 { }

// IF示例
var a = 1
if (a) {
    a = 2
}
if (a) a = 2

// FOR示例
var b = [1, 4, 5]
for (var i in b) {
    console.log(b)
}
for (var i in b) console.log(b)

时间操作

时间格式化

/**
* 时间格式化
* time string 时间
* fmt string 输出格式 默认年月日时分 例: yyyy-MM-dd hh:mm
* last string 上一年 'year' 上一月 'month'
*/
export function dateFormat (time, fmt, last) {
  let date
  if (time) {
    date = new Date(time)
  } else {
    date = new Date()
  }

  let o = {
    "M+" : date.getMonth()+1,                 // 月份
    "d+" : date.getDate(),                    // 日
    "h+" : date.getHours(),                   // 小时
    "m+" : date.getMinutes(),                 // 分
    "s+" : date.getSeconds(),                 // 秒
    "q+" : Math.floor((date.getMonth()+3)/3), // 季度
    "S"  : date.getMilliseconds()             // 毫秒
  }
  let year = date.getFullYear()
  if (last === 'year') {
    year--
  } else if (last === 'month') {
    if (o['M+'] === 1) {
      o['M+'] = 12
    } else {
      o['M+']--
    }
  }

  if (fmt) {
    if(/(y+)/.test(fmt)) {
      fmt = fmt.replace(RegExp.$1, (year + "").substr(4 - RegExp.$1.length))
    }
    for(let k in o)
      if(new RegExp("("+ k +")").test(fmt))
    fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)))
    return fmt;
  } else {
    return year + "年" + o["M+"] + "月" + o["d+"] + "日 " + o["h+"] + "时" + o["m+"] + "分"
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值