排序
數組排序
//正序
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+"] + "分"
}
}