gpt4 book ai didi

JavaScript 表格排序

转载 作者:行者123 更新时间:2023-12-03 10:26:50 26 4
gpt4 key购买 nike

我正在尝试实现一个表格排序功能。

它需要将类和一些数据属性保留在<td>上的和<tr>所以我的做法与我在其他示例中看到的略有不同。

我正在使用localeCompare()在排序功能中。我遇到的问题是,对列表中的第一个第七项目进行排序后,列表中的项目已乱序 - 其余项目似乎按顺序排列。我尝试使用 > < 更改排序功能相反,我得到了相同的结果。

有人可以看一下我的代码,看看我是否遗漏了一个明显的错误吗?

我对每一列都进行了测试,它总是第一列和第七列。

enter image description here

var sort = function() {

var tbody = document.getElementById(tbody_id),
rows_len = tbody.rows.length,
col_len = tbody.rows[0].cells.length;

//console.log(rows_len, col_len);

var order_hash = [];

//loop rows
for(var i = 0; i < rows_len; i++) {

order_hash[i] = {
value:tbody.rows[i].cells[column].innerHTML,
html: tbody.rows[i].outerHTML
};

}

console.log(order_hash);

order_hash.sort(function(a, b) {

var result = a.value.localeCompare(b.value);

return (order == 'asc') ? result : (result == 0) ? 0 : (result < 1) ? 1 : -1;

});

order_hash.sort();

var html = '';

for(var i = 0; i < rows_len; i++) {
html += order_hash[i].html;
}

tbody.innerHTML = html;

order = undefined;
delete(order_hash);

};



}();

最佳答案

您调用排序方法两次(一次自定义,一次标准),因此第二次排序将以不一致的方式对 order_hash 进行排序,因为:

If compareFunction is not supplied, elements are sorted by converting them to strings and comparing strings in Unicode code point order. For example, "Cherry" comes before "banana". In a numeric sort, 9 comes before 80, but because numbers are converted to strings, "80" comes before "9" in Unicode order.

引用号:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

删除第二个排序即可正常工作。

演示:http://jsfiddle.net/wf9o2tg8/

关于JavaScript 表格排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29366182/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com