A多彩儿童摄影 2012-09-24 16:33
浏览 914
已采纳

编写一个js函数求一个字符串数组按字符串中各字母出现次数多少的重新排序

题目可能有点没表述清楚,即假设有一个一维数组{"abcdeafab","abcdabcd","adadad"},则各个字符串中各字母出现的重复次数分别是(按降序排列),2,2,2,2;3,2,1,1,1,1;3,3。则该数组重新排列后输出为{"adadad","abcdeafab","abcdabcd"};
求满足要求的js函数

  • 写回答

1条回答 默认 最新

  • jinnianshilongnian 2012-09-24 21:11
    关注

    [code="java"]<br> var array = [&quot;abcdeafab&quot;,&quot;abcdabcd&quot;,&quot;adadad&quot;];</p> <pre><code>var statArray = new Array(); for(var index in array) { var stat = {}; var value = array[index]; for(var i=0;i&lt;value.length;i++) { var str = value.slice(i,i+1); if(!stat[str]) { stat[str] = 1; } else { stat[str]++; } } statArray.push(stat); } var resultArray = new Array(); for(var index in statArray) { var tmp = new Array(); var stat = statArray[index]; for(var key in stat) { tmp.push(stat[key]); } tmp.sort().reverse(); resultArray.push(tmp); } resultArray.sort().reverse(); console.info(resultArray); </code></pre> <p>
    [/code]
    不考虑性能

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?