面试遇到一个问题,输入一个字符串将字符串按重复次数多到少,数字顺序小到大进行排序
sortStringByCount(argc){
if (typeof(argc) !== "string" || argc.constructor !== String) {
//constructor 属性返回所有 JavaScript 变量的构造函数
return argc;
}else{
var dealtArgc = argc.split('').sort().join('');
//将字符串分割输出数组,然后对数组排序,再转换成字符串
// /(.)\1 这个匹配任意连续的字符,并把第一个获取出来存放到集合里
var newStr = dealtArgc.match(/(.)\1{0,}/g).sort(function(a,b){
//match输出的是数组形式,然后用sort排序,最后用join转成字符串
return b.length - a.length
}).join('');
return newStr;
}
}
sortStringByCount('2szz多大365.4ff大26.59.8小7ss1.23e64f825')
=> //....2222555666fffsss334488zz大大179e多撒
虽然不知道哪里会用到,先列出来吧