1.对象合并
var a = {name: 'Adele', age: 20}
var b = {name: 'Chris', age: 20, address: 'beijing'}
function update (...args) {
return Object.assign(...args)
}
console.log(update(a, b))
2.阶乘
function factorial(n, acc = 1) {
if (n <= 1) return acc;
return factorial(n - 1, n * acc);
}
factorial(5)
// 简写
const factorial = (n) => n === 1 ? 1 : n * factorial(n - 1)
3.正则匹配所有img标签
'<img/><html></html><img/><img/><img/>'.match(/<img[^>]*>/gi).join('')
4.下划线法命名改为驼峰命名
1.
'table_name_code'.replace(/_\w/ig, (match) => match.charAt(1).toUpperCase())
2.
'table_name_code'.replace(/_(\w)/g, (_, c) => c ? c.toUpperCase() : '')
5. 统计字符串中相同字符出现的次数
var str = 'aaabbbccc66aabbc6';
var strInfo = str.split('').reduce((p, c) => (p[c]++ || (p[c] = 1), p), {});
6.将类数组对象转成数组
// 类数组
var likeArrObj = {
0: 1,
1: 2,
2: 3,
length: 3
}
方法1:
var arr1 = Array.prototype.slice.call(likeArrObj); // 或者使用[].slice.call(likeArrObj);
方法2:
function toArray (list, start) {
start = start || 0;
var i = list.length - start;
var ret = new Array(i);
while (i--) {
ret[i] = list[i + start];
}
return ret
}
toArray(likeArrObj)
7.正则表达式获取并计算绝对值
Math.abs(eval(/(?<=ABS\().*?(?=(\)|$))/.exec('ABS(1+2+3+4+5-100)')[0])) // 获取ABS()中的字符串,并计算值,最后转换成绝对值
8. 首字母大写
const capitalize = (str) => str.charAt(0).toUpperCase() + str.slice(1)
capitalize('hello world') // 'Hello world'
9.驼峰转中折线
const hyphenateRE = (str) => str.replace(/\B([A-Z])/g, '-$1').toLowerCase()
hyphenateRE('helloWrold') // 'hello-wrold'