使用JavaScript对数据进行排序

使用JavaScript对数据进行排序,javascript,jquery,html,css,list,Javascript,Jquery,Html,Css,List,我需要使用JavaScript对数据源进行排序的帮助。下面提到了我的javascript代码,它正在生成一个无序列表。如果我单击“生成排序列表”,它将生成如下输出: 遍历已排序的键数组而不是对象 可以按未定义的顺序替换对象键上的迭代 ... for (var prop in obj) { ... 在排序键上进行迭代 ... var sortedKeys = Object.keys(obj).sort(); for (var i = 0; i < sortedKeys.length

我需要使用JavaScript对数据源进行排序的帮助。下面提到了我的javascript代码,它正在生成一个无序列表。如果我单击“生成排序列表”,它将生成如下输出:




遍历已排序的键数组而不是对象


可以按未定义的顺序替换对象键上的迭代

...
for (var prop in obj) {
...
在排序键上进行迭代

...
var sortedKeys = Object.keys(obj).sort();
for (var i = 0; i < sortedKeys.length; ++i) {
    var prop = sortedKeys[i];
...
。。。
var sortedKeys=Object.keys(obj.sort();
对于(变量i=0;i
可能重复的可以请您给我一把实时小提琴吗,因为我对它的排序感到困惑。因为在这里我们要枚举对象属性,唯一的区别是它们现在位于一个排序数组中,这样更容易获得按字母顺序显示的列表/项目。Finally inside for in,我不是遍历键,而是使用obj[keys[prop]]获取值和节点。您是对的,您遍历了对象属性。该对象是一个数组,因此键是0、1、2,可能还有添加到数组原型链中的任何内容,这真的不是一个好主意。尝试Array.prototype.foo=5,您会遇到问题。请帮助我修复此错误。当我单击“生成排序列表”时,列表将生成并消失小提琴:
var keys = Object.keys(obj).sort();
for (prop in keys) {
    if (keys.hasOwnProperty(prop)) {
        li = document.createElement("li");
        li.appendChild(document.createTextNode(keys[prop]));


        if (typeof obj[keys[prop]] == "object" && Object.keys(obj[keys[prop]]).length) {
            li.appendChild(traverseObject(obj[keys[prop]]));
        } else {
            li.className += "leaf";
        }
        ul.appendChild(li);
        console.log(ul);
    }
}
...
for (var prop in obj) {
...
...
var sortedKeys = Object.keys(obj).sort();
for (var i = 0; i < sortedKeys.length; ++i) {
    var prop = sortedKeys[i];
...