在对象中对javascript数组进行排序,并保持键 [英] sort javascript array in object, maintaining key

查看:68
本文介绍了在对象中对javascript数组进行排序,并保持键的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个带有两个数组的javascript对象,如图所示,

I have a javascript object with two array's as shown,

var Object = {'name': [Matt, Tom, Mike...], 'rank': [34,1,17...]};

我正在尝试按等级1,2,3 ..排序,但要保留与等级相关的名称.

I am trying to sort by rank 1,2,3.. but keep the name associated with the rank.

Object.name[0] // tom
Object.rank[0] // tom's rank of 1.

我应该重新配置对象以使排序更容易吗?

Should I reconfigure my object to make sorting easier?

我当前正在使用

 Object.rank.sort(function(a,b){return a-b});

订购排名,但名称不与之保持联系.

to order rank, but the name does not stay with it.

感谢所有帮助.谢谢!

推荐答案

是的,重新配置.假设您使用的是这个

Yes, reconfigure. Say you had this instead:

var people = [{name:"Matt", rank:34}, {name:"Tom", rank:1}, {name:"Mike", rank:17}];

然后您可以像这样进行排序:

Then you could sort like this:

people.sort(function(a, b) {
  return a.rank - b.rank;
}

修改

由于您具有并行列表,因此将它们压缩在一起:

Since you have parallel lists, just zip them together:

var people = [];
for (var i = 0; i < Object.name.length; i++) {
  people.push({name:Object.name[i], rank:Object.rank[i]});
}

这篇关于在对象中对javascript数组进行排序,并保持键的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆