用Javascript对数组,变量或对象进行排序

赫雷什

我是javascript新手,但我已经制作了一些脚本,这些脚本确实对我的工作流程产生了影响。但是,我现在正在着手进行一个项目,该项目迫使我以我不知道如何在Javascript中进行操作的方式对数据进行排序。我将尝试解释我该怎么做,就像我的数据在excel中一样,但事实并非如此,我只能将数据放入4个不同的数组中:

 pagenumber[1,2,3,4,5] //only numbers
 zipcode[77889,99887,33667,11122,44559] // only numbers
 streetname[Hillroad, Hillroad, Baghdad Street, Hongway, Chinatown] //only letters
 roadnumber[55,27,1,13,16] //only numbers

我想这样对它们进行排序,首先按邮政编码,然后按路名,然后按偶数路数递减,然后按奇数路数递增。根据这种新的排序方式,我想生成一个新的页码,但是我希望它与(旧)变量“ pagenumber”相关,以便我可以找到旧页并将其提取到具有新页码的新文档中。我并不是要你们为我编写所有代码,但我需要一点建议,首先要知道我是否可以做到这一点,其次我应该把数据放在四个不同的位置对不对第三,如果这是任何(当然)更智能的数据保存方式,那么它们之间的关系就更紧密了。给我你的想法。还要感谢我应在何处阅读的技巧。谢谢大家的回答。

jiajianrong

我想您的数组中的项目是捆绑在一起的。因此,您应该使用[{},{},{},{},{}]而不是4个数组。 var items = [{pagenumber:1,zipcode:77889,streetname:Hillroad,roadnumber:55},{...},{...},{...},{...}] 然后,将每个键值属性一一排序,如下所示:

var x= [ {a:2,b:2,c:3}, {a:1,b:1,c:1}, {a:1,b:2,c:3}, {a:2,b:2,c:2} ];

x.sort(function(item1, item2){ 
    var sort_a = item1.a-item2.a;
    if (sort_a) return sort_a;
    var sort_b = item1.b-item2.b;
    if (sort_b) return sort_b;
    var sort_c = item1.c-item2.c;
    if (sort_c) return sort_c;
})

或简化为

x.sort(function(item1, item2){ 
    return (item1.a-item2.a) || (item1.b-item2.b) || (item1.c-item2.c);
})

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章