JS把字串裡的字元按出現次數由大到小取出打印出來
阿新 • • 發佈:2018-12-15
var str = 'aadbbcaffg'; var obj = {}; var arr = [], arr2 = []; var temp_name, temp_v; for (var x=0; x<str.length; x++) { if (!obj[str[x]]) { obj[str[x]] = 1; arr.push(str[x]); } else { obj[str[x]]++; } } while (arr.length > 1) { temp_name = arr[0]; temp_v = obj[arr[0]]; for (var i=1; i<arr.length; i++){ if (temp_v < obj[arr[i]]){ temp_name = arr[i]; temp_v = obj[arr[i]] }else if (temp_v === obj[arr[i]]) { if (temp_name.charCodeAt() > arr[i].charCodeAt()) { temp_name = arr[i]; temp_v = obj[arr[i]] } } } arr2.push([temp_name, temp_v]); arr.splice(arr.indexOf(temp_name), 1); } console.log(arr); arr2.push([arr[0], obj[arr[0]]]); console.log(arr2);