字符串相关
把驼峰命名转成下划线命名
"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]]
}