对象操作备忘

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'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值