Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 排序表中的数组顺序_Javascript_Html_Arrays - Fatal编程技术网

Javascript 排序表中的数组顺序

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

我想创建一个脚本,根据使用鼠标单击的列标题对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 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,我们现在看到了,但是您应该在提交之前考虑一下您的原始帖子。因此,我们不必关注您的所有编辑,猜测您可能需要什么。