【发布时间】:2018-08-24 23:57:14
【问题描述】:
我正在尝试执行以下操作。
首先,输入一个字符串并计算唯一单词的数量。
其次,对唯一字数进行降序排序。
第三,如果两个单词的字数相同,则按出现的顺序排列。
问题:为什么“up”这个词首先出现在我返回的数组中?
var doc =
"Cause I'm Slim Shady, yes I'm the real Shady, All you other Slim Shadys are just imitating So won't the real Slim Shady, please stand up, Please stand up, Please stand up";
function wordCountEngine(doc) {
var stringModArr = doc.replace(/[.,'\/#!$%\^&\*;:{}=\-_`~?()]/g, "").toLowerCase().split(" ");
var wordLibrary = {};
for (let i = 0; i < stringModArr.length; i++) {
if (wordLibrary.hasOwnProperty(stringModArr[i])) {
wordLibrary[stringModArr[i]] = String((Number(wordLibrary[stringModArr[i]])) + 1);
} else {
wordLibrary[stringModArr[i]] = '1';
}
}
var sortable = [];
for (var word in wordLibrary) {
sortable.push([word, wordLibrary[word]]);
}
var final = sortable.sort(function(a, b) {
return b[1] - a[1];
});
return final;
}
wordCountEngine(doc)
【问题讨论】:
标签: javascript arrays sorting