在对象中排序javascript数组,维护键

mat*_*tyd 5 javascript sorting

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

var Object = {'name': [Matt, Tom, Mike...], 'rank': [34,1,17...]};
Run Code Online (Sandbox Code Playgroud)

我试图按1,2,3级排序,但保持名称与排名相关联.

Object.name[0] // tom
Object.rank[0] // tom's rank of 1.
Run Code Online (Sandbox Code Playgroud)

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

我目前正在使用

 Object.rank.sort(function(a,b){return a-b});
Run Code Online (Sandbox Code Playgroud)

订购排名,但名称不会留在它.

所有帮助赞赏.谢谢!

jps*_*ons 4

是的,重新配置。假设你有这个:

var people = [{name:"Matt", rank:34}, {name:"Tom", rank:1}, {name:"Mike", rank:17}];
Run Code Online (Sandbox Code Playgroud)

然后你可以这样排序:

people.sort(function(a, b) {
  return a.rank - b.rank;
}
Run Code Online (Sandbox Code Playgroud)

编辑

由于您有并行列表,只需将它们压缩在一起即可:

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