我有一个带有两个数组的javascript对象,如图所示,
var Object = {'name': [Matt, Tom, Mike...], 'rank': [34,1,17...]};
我试图按排名1,2,3进行排序。。但保留与等级相关的名称。
Object.name[0] // tom
Object.rank[0] // tom's rank of 1.
我应该重新配置我的对象以使排序更容易吗?
我目前正在使用
Object.rank.sort(function(a,b){return a-b});
按顺序排列,但名称不保留。
感谢大家的帮助。谢谢
是的,如果names
数组中的第i个对象连接到rank
数组中的第i个对象,那么应该这样表示它。这意味着,你应该使用一个Person
(或任何它是什么)对象,它有两个属性:name
和rank
。
// person constructor
function Person(name, rank) {
this.name = name;
this.rank = rank;
}
// create the object with the array
var myObject = {
myArray: new Array()
};
// populate the array
myObject.myArray.push(new Person('Matt', 34));
myObject.myArray.push(new Person('Tom', 1));
myObject.myArray.push(new Person('Mike', 17));
// sort the Person objects according to their ranks
myObject.myArray.sort(function(a, b) {
return b.rank - a.rank;
});
真实世界的对象:
o = {name: ['Matt', 'Tom', 'Mike'], rank: [34,1,17]};
制作一个数组以获得更好的数据结构:
var arr =[];
o.name.forEach(function(name, i){
arr.push({name: name, rank: o.rank[i]})
});
按级别排序:
arr.sort(function(a,b){return a.rank - b.rank});
按名称排序:
arr.sort(function(a,b){return a.name- b.name});
恢复到原始数据结构:
o = {name:[], rank:[]}
arr.forEach(function(item){
o.name.push(item.name);
o.rank.push(item.rank);
});
是的,重新配置。假设你有这个:
var people = [{name:"Matt", rank:34}, {name:"Tom", rank:1}, {name:"Mike", rank:17}];
然后你可以这样分类:
people.sort(function(a, b) {
return a.rank - b.rank;
}
编辑
既然有平行列表,只需将它们压缩在一起:
var people = [];
for (var i = 0; i < Object.name.length; i++) {
people.push({name:Object.name[i], rank:Object.rank[i]});
}
未排序数组[输入]: 数组中元素的格式将始终为: 我尝试了array.sort()函数,但没有得到预期的输出。
我有一个Object数组,它声明如下所示: 我需要根据每个对象的第三个元素,然后根据第二个元素对这些对象进行排序。因此我的输出将是:
Navicat 为维护 MongoDB 对象提供完整的解决方案。 在主窗口的导航窗格中或对象选项卡中选择对象。 右击已选择的对象。 选择“维护”,然后从弹出式菜单中选择一个维护选项。 结果显示在弹出的窗口中。 数据库 选项 描述 修复数据库 通过放弃无效或损坏的数据来重新生成数据库和索引。 集合 选项 描述 压缩集合 对集合中的所有数据和索引进行重写和碎片整理。 验证集合 通过扫描集合的数据和索引
Navicat 为维护 SQLite 对象提供完整的解决方案。 在主窗口的导航窗格中或对象选项卡中选择对象。 右击已选择的对象。 选择“维护”,然后从弹出式菜单中选择一个维护选项。 结果显示在弹出的窗口中。 数据库 选项 描述 分析数据库 收集有关数据库的统计数据。 真空数据库 重新生成数据库文件。它只适用于 main 数据库。 重新生成数据库索引 删除并重新生成数据库内的所有索引。 表 选项 描
Navicat 为维护 SQL Server 对象提供完整的解决方案。 在主窗口的导航窗格中或对象选项卡中选择对象。 右击已选择的对象。 选择“维护”,然后从弹出式菜单中选择一个维护选项。 结果显示在弹出的窗口中。 数据库 选项 描述 读写 将数据库设置为读写模式。 只读 将数据库设置为只读模式。 在线 使数据库在线。 离线 使数据库离线。 紧急 将数据库设置为紧急状态。 多个用户 将数据库设置为
Navicat 为维护 PostgreSQL 对象提供完整的解决方案。 在主窗口的导航窗格中或对象选项卡中选择对象。 右击已选择的对象。 选择“维护”,然后从弹出式菜单中选择一个维护选项。 结果显示在弹出的窗口中。 数据库 选项 描述 允许 用户可以连接到数据库。 不允许 没有用户可以连接到数据库。 分析数据库 收集关于数据库的统计数据。 真空数据库 垃圾收集并根据需要分析数据库。 重新生成数据库