javascript的一些常用技能

反转一个字符串

1
'123456789'.split('').revert().join(''); // '987654321';

去重

1
'11122213434'.split('').filter((item, index, ary) => index == ary.indexOf(item)).join(''); // '1234'

多维数组->字符串

1
[[[1], 2], [3], 4].join(); // '1,2,3,4'

返回随机元素

1
2
3
4
5
6
// method1
let ary = ['male', 'female'];
let ret = ary[~~(Math.random() * ary.length)];

// method2
[1, 2, 3, 4, 5, 6].sort(() => {var v = Math.random() - .5; return v / Math.abs(v);}).shift();

计算出字符串中字符出现次数

1
'abcdaabc'.split('').reduce((p, c) => (p[c] = (p[c] || 0) + 1, p) , {});

找出一段文本中长度为l,重复次数超过n的子文本集合

1
2
3
4
5
6
7
function(text, l, n) {
var f = 0, ts = {}, t;
while((t = text.substr(f++, l)) && t.length == l) {
ts[t] = ts[t] ? ++ts[t] : 1;
}
return Object.keys(ts).filter((k) => ts[k] >= n);
}
文章目录
  1. 1. 反转一个字符串
  2. 2. 去重
  3. 3. 多维数组->字符串
  4. 4. 返回随机元素
  5. 5. 计算出字符串中字符出现次数
  6. 6. 找出一段文本中长度为l,重复次数超过n的子文本集合
,