比较有用的js代码片断

字符串相关

把驼峰命名转成下划线命名

"abcAaaaBasfsdf".match(/^[a-z]+|[A-Z][a-z]*/g).join('_').toLowerCase()

把下划线命名 转成驼峰命名

"abc_aaaa_basfsdf".replace(/(_[a-z])[a-z]+/g,(item,1);return item.replace(1.substring(1).toUpperCase())})

加千分位

"-232323121".replace(/\B(?=(\d{3})+(?!\d))/g,',')
不懂

统计字符串中每个字符出现的频率

var str = 'aaabbccddaa'
var info = str.split('')

info.reduce((p,k)=>{ console.info(p,k) ; console.info(p[k],p[k]++);return (p[k]++||(p[k]=1),p)},{})

(1) 数组.reduce((item1,item2)=>{return 新值},初始值)
(2)

if(p[k])
 p[k] = p[k] + 1
else 
p[k] = 1
return p[k]
// 上面的代码与下面的代码功能相同
return (p[k]++ || (p[k]=1) , p)

逗句表达式的执行流程:(表达式1,表达式2,... ,表达式n ) ,它会从左到右依次处理各个表达式,最后得到的结果是表达式n的结果。
关于逗号表达式小例子1:

var i,j,k;
for( i = 0 , j = 0; i < 10 , j < 6; i++ , j++ ) {
k = i+j;
}
document.write(k); //10

关于逗号表达式小例子2:

function f(){ return 1 ,2 ,3}
f()// 3

关于逗号表达式小例子3:

alert((2*5, 2*4))
alert(2*5, 2*4)

随机打乱一个数组

如下代码

var arr = [1,2,3,4];
arr.sort(()=>Math.random()-0.5)
console.info(arr)
var arr = [1,2,3,4];
var m = arr.length, i=0;
while (m) {
       i = (Math.random() * m--) >>> 0;
       [rs[m], rs[i]] = [rs[i], rs[m]]
}

你可能感兴趣的:(比较有用的js代码片断)