我正在创建一个字符串的单词列表。然后我把这个字符串分成单个单词,收集每个单词重复多少次并显示它。一切都有那里完美的作品。但是,结果显示的单词和计数没有特定的顺序。我会首先以最高的数字显示它们。我生成了以下代码:当数字是每个条目的第一部分时,如何在Javascript中对数组进行数字排序?
<!DOCTYPE html>
<html>
<body>
<p>Click the button to display the array values after the split.</p>
<button onclick="analyze()">Analyze</button>
<p id="displayText"></p>
<script>
function analyze() {
var str = "This this is is is is is is is is is is is is is is is just just a test test test";
var res = str.split(" ");
document.getElementById("displayText").innerHTML = res;
document.getElementById("displayText").innerHTML += "<br/><br/>The amount of words is: " + res.length + "<br/><br/><br/>";
document.getElementById("displayText").innerHTML += "The list of words:<br/><br/>";
var words = [];
var wordsWithCount = [];
for (i = 0; i < res.length; i++) {
words.push(res[i]);
document.getElementById("displayText").innerHTML += words[i] + "<br/><br/>";
}
var current = null;
var cnt = 0;
for (var i = 0; i < words.length; i++) {
if (words[i] != current) {
if (cnt > 0) {
document.getElementById("displayText").innerHTML += "<br/><br/>" + cnt + " - " + current + "<br/>";
wordsWithCount.push(cnt + " - " + current);
}
current = words[i];
cnt = 1;
} else {
cnt++;
}
}
if (cnt > 0) {
document.getElementById("displayText").innerHTML += "<br/><br/>" + cnt + " - " + current + "<br/>";
wordsWithCount.push(cnt + " - " + current);
}
wordsWithCount.sort();
document.getElementById("displayText").innerHTML += "<br/><br/><br/><br/><br/>The list of SORTED words:<br/><br/>";
for (i = 0; i < wordsWithCount.length; i++) {
document.getElementById("displayText").innerHTML += wordsWithCount[i] + "<br/><br/>";
}
}
</script>
</body>
</html>
这是输出的最后一位。正如你所看到的,它正在排序,但只有第一位。因此,15之前显示2.任何想法?
的已排序的单字的列表:
1 - 这
1 - 一个
1 - 这
15 - 是
2 - 只是
3 - 测试
我很可能需要在某些时候将它分成两个数组,因为我希望用户能够复制和粘贴所有的单词,而不需要数字。但是,我认为这将是最后一步,因为如果我将每个单词的频率分解为它自己的数字数组,并将这些单词保留在它们自己的数组中,那么sort函数将对一个数组进行排序,而另一个数组数组不会遵循。
'parseInt函数()'不关心是否有非数字文本* *后一个数字,字符串的开始。 – Pointy
@Pointy,你能否为我澄清一下你的答案?你是说我可以在我的代码中使用'parseInt()'来让它做我想要的吗?你能提供一个我如何使用它的例子吗? – Ryan
https://stackoverflow.com/questions/15478954/sort-array-elements-string-with-numbers-natural-sort – Bergi