Javascript 排序表中的数组顺序
我想创建一个脚本,根据使用鼠标单击的列标题对HTML表进行排序。我试图实现这里给出的答案: 我做了一些轻微的修改,因此现在排序函数如下所示:Javascript 排序表中的数组顺序,javascript,html,arrays,Javascript,Html,Arrays,我想创建一个脚本,根据使用鼠标单击的列标题对HTML表进行排序。我试图实现这里给出的答案: 我做了一些轻微的修改,因此现在排序函数如下所示: var COLUMNS_NUMBER = 4; var myArrayColumns = [3,2,1,0]; function sortDataTable(arrayColumns, asc) { for (var i = 0, n = COLUMNS_NUMBER; i < n; i++) { // var thi
var COLUMNS_NUMBER = 4;
var myArrayColumns = [3,2,1,0];
function sortDataTable(arrayColumns, asc)
{
for (var i = 0, n = COLUMNS_NUMBER; i < n; i++)
{
// var thisColumn = arrayColumns[i];
var thisColumn = arrayColumns.reverse()[i];
DATA_TABLE = DATA_TABLE.sort(function(a,b)
{
if (asc)
{
return (a[thisColumn].toLowerCase() > b[thisColumn].toLowerCase()) ? 1 : -1;
}
else
{
return (a[thisColumn].toLowerCase() < b[thisColumn].toLowerCase()) ? 1 : -1;
}
});
}
}
sortDataTable(myArrayColumns, true);
其中3、2、1、0是数据中的列号
然而,它似乎总是按照列0排序,即使我颠倒了myArrayColumns
的顺序。为什么会这样
以下是一些示例数据:
var DATA_TABLE =
[
["ASCII/Unicode/HTML Codes","Reference","091","PC: <span style=\"font-size:smaller;\"><a target=\"_blank\" href=\"./keyboard-diagram-ascii-unicode-html-codes.php?sty=15&lay=1&fmt=0\">US 104 Key (ANSI)</a></span><br/>"],
["ActionScript 3.0 Key Codes","Reference","092","PC: <span style=\"font-size:smaller;\"><a target=\"_blank\" href=\"./keyboard-diagram-actionscript-3-0-key-codes.php?sty=15&lay=1&fmt=0\">US 104 Key (ANSI)</a></span><br/>"],
["Age of Decadence, The","Roleplaying","156","PC: <span style=\"font-size:smaller;\"><a target=\"_blank\" href=\"./keyboard-diagram-age-of-decadence-the.php?sty=15&lay=1&fmt=0\">US 104 Key (ANSI)</a></span><br/>"],
["Aliens versus Predator","Action","002","PC: <span style=\"font-size:smaller;\"><a target=\"_blank\" href=\"./keyboard-diagram-aliens-versus-predator.php?sty=15&lay=1&fmt=0\">US 104 Key (ANSI)</a></span><br/>"],
["Allegiance","Simulation","014","PC: <span style=\"font-size:smaller;\"><a target=\"_blank\" href=\"./keyboard-diagram-allegiance.php?sty=15&lay=1&fmt=0\">US 104 Key (ANSI)</a></span><br/>"],
["American McGee's Alice","Action","003","PC: <span style=\"font-size:smaller;\"><a target=\"_blank\" href=\"./keyboard-diagram-american-mcgees-alice.php?sty=15&lay=1&fmt=0\">US 104 Key (ANSI)</a></span><br/>"],
["Anachronox","Roleplaying","140","PC: <span style=\"font-size:smaller;\"><a target=\"_blank\" href=\"./keyboard-diagram-anachronox.php?sty=15&lay=1&fmt=0\">US 104 Key (ANSI)</a></span><br/>"],
["Apple Virtual Key Codes","Reference","090","Mac: <span style=\"font-size:smaller;\"><a target=\"_blank\" href=\"./keyboard-diagram-apple-virtual-key-codes.php?sty=15&lay=5&fmt=0\">US 109 Key (A1048)</a>, <a target=\"_blank\" href=\"./keyboard-diagram-apple-virtual-key-codes.php?sty=15&lay=6&fmt=0\">US 109 Key (A1243)</a>, <a target=\"_blank\" href=\"./keyboard-diagram-apple-virtual-key-codes.php?sty=15&lay=7&fmt=0\">UK 110 Key (A1048)</a></span><br/>"],
["Blank Starter","Reference","184","PC: <span style=\"font-size:smaller;\"><a target=\"_blank\" href=\"./keyboard-diagram-blank-starter.php?sty=15&lay=1&fmt=0\">US 104 Key (ANSI)</a>, <a target=\"_blank\" href=\"./keyboard-diagram-blank-starter.php?sty=15&lay=3&fmt=0\">DE 105 Key (ISO)</a>, <a target=\"_blank\" href=\"./keyboard-diagram-blank-starter.php?sty=15&lay=4&fmt=0\">FR 105 Key (ISO)</a>, <a target=\"_blank\" href=\"./keyboard-diagram-blank-starter.php?sty=15&lay=8&fmt=0\">UK 105 Key (ISO)</a>, <a target=\"_blank\" href=\"./keyboard-diagram-blank-starter.php?sty=15&lay=9&fmt=0\">ES 105 Key (ISO)</a>, <a target=\"_blank\" href=\"./keyboard-diagram-blank-starter.php?sty=15&lay=10&fmt=0\">US 104 Key (Dvorak)</a></span><br/>Mac: <span style=\"font-size:smaller;\"><a target=\"_blank\" href=\"./keyboard-diagram-blank-starter.php?sty=15&lay=5&fmt=0\">US 109 Key (A1048)</a>, <a target=\"_blank\" href=\"./keyboard-diagram-blank-starter.php?sty=15&lay=6&fmt=0\">US 109 Key (A1243)</a>, <a target=\"_blank\" href=\"./keyboard-diagram-blank-starter.php?sty=15&lay=7&fmt=0\">UK 110 Key (A1048)</a></span><br/>"]
]
var数据表=
[
[“ASCII/Unicode/HTML代码”、“参考”、“091”、“PC:
”],
[“ActionScript 3.0关键代码”、“参考”、“092”、“PC:
”],
[“颓废时代”、“角色扮演”、“156”、“个人电脑:
”],
[“外星人对捕食者”,“行动”,“002”,“个人电脑:
”],
[“效忠”、“模拟”、“014”、“个人电脑:
”],
[“美国麦基的爱丽丝”,“行动”,“003”,“个人电脑:
],
[“Anacronox”、“角色扮演”、“140”、“PC:
”],
[“苹果虚拟钥匙代码”、“参考”、“090”、“Mac:,
”],
[“空白启动器”、“参考”、“184”、“PC:,,,
Mac:,
]
谢谢。这可能是个更简单的主意
var myArrayColumns=[3,2,1,0];
函数排序数据表(arrayColumns,asc){
如果(asc){
返回arrayColumns.sort();
}否则{
返回arrayColumns.sort().reverse();
}
}
log(sortDataTable(myArrayColumns))
在我添加一些示例数据时,请稍候。抱歉。好的,我添加了一些示例数据。似乎排序功能适用于所有列,但第3列在任何情况下都不能正确排序。当浏览器遇到混合文本/HTML数据时,它们会如何表现?问题实际上与解析/剥离HTML标记有关,回答如下:我投票将这个问题作为离题题结束,因为这个问题最终与数组和表排序无关。那些出色的星期六战士。。。不,我正在尝试排序的表名为DATA\u table
@posfan12,我们现在看到了,但是您应该在提交之前考虑一下您的原始帖子。因此,我们不必关注您的所有编辑,猜测您可能需要什么。