1. escapeHTML() 将输入的html转义;(防止利用前端输入框输入脚本内容进行恶意攻击的,将输入转义)
function escapeHTML(str) {
return String(str)
.replace(/&/g, '&')
.replace(/"/g, '"')
.replace(/'/g, ''')
.replace(/</g, '<')
.replace(/>/g, '>')
}
2. 前端处理数据新增和更新, 不存在就增加,存在就更新
var list = []
function addOrUpdate (item, id) {
// list
if (list.length === 0) { // 判断数组长度为0,为新增
this.list.push(item)
} else { // 数组长度大于0,遍历,存在就更新,不存在就新增
// 判断是否存在标识,存在变为true
var flag = false
list.forEach((item, index) => { // 遍历数组
if (item.id === id) {
this.list.splice(index, 1, form)// 存在更新
flag = true
}
})
// 新增
if (!flag) {
list.push(form)
}
}
}
3. 判断对象是否存在属性,es6
结果大于0 存在属性,等于0就是对象为空对象
Object.keys(obj).length
4. 把当前日期格式化为 YY-MM-DD
dateFormart () {
var d = new Date()
var year = d.getFullYear()
var mon = d.getMonth() + 1
var day = d.getDate()
var day1 = new Date()
day1.setTime(day1.getTime() - 9 * 24 * 60 * 60 * 1000)
var date = year + '-' + (mon < 10 ? ('0' + mon) : mon) + '-' + (day < 10 ? ('0' + day) : day)
return date
}
5. 累加计算
// good
let sum = 0
numbers.forEach(num => sum += num)
// better
const sum = numbers.reduce((total, num) => total + num, 0)
6. 指定深度扁平化数组
const flatten = (arr, depth = 1) =>
arr.reduce((a, v) => a.concat(depth > 1 && Array.isArray(v) ? flatten(v, depth - 1) : 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]