【发布时间】:2017-01-25 14:45:54
【问题描述】:
我正在尝试按字母顺序对段落进行排序,不是按照正常的 ABC 而是按照编造的(var 顺序)。
我编写了这个函数,它工作得很好,但仅适用于每个单词的第一个字母 - 也不是单词内排序(例如,在正确的 ABC 中,'banana' 会出现在 'birthday' 之前)。
我不知道从这里去哪里。
$("#send").click(function () {
var text = $("#text").val().replace(/[^A-Za-z0-9_\s]/g, "").toUpperCase().split(" ");
var order = ["Q", "B", "K", "D", "H", "V", "Z", "E", "F", "O", "G", "L", "M", "S", "N", "P", "I", "X", "A", "R", "W", "U", "C", "J", "T", "Y"];
var i, t, j;
var newText = []; // will hold the new alphabet
// function to sort the words:
for (i = 0; i < order.length; i++) {
for (t = 0; t < text.length; t++) {
var firstChar = text[t][0];
if (order[i] == firstChar) {
newText.push(text[t]);
}
}
}
console.log(newText.join(','));
});
编辑: 一个示例输入可以是:“嗨,你不觉得这很棒吗”, 我希望输出是:“不要觉得你太棒了”。
【问题讨论】:
-
只是好奇,给字母表中的每个字母分配一个排序等级,然后按等级排序吗?
-
请添加一些示例数据和想要的结果。
-
这应该很容易实现,但我们需要首先查看您的 HTML - 或者至少是输入值 - 以及预期的输出
标签: javascript jquery sorting alphabetical