按另一个数组的大小对数组进行排序
Sorting array by another array's size
var names = ['Bob', 'Joe', 'Phil', 'Max'];
var ages = [8, 23, 15, 17];
我需要按年龄对名字进行排序。所以像这样:
var result = [1, 3, 2, 0];
您的问题要求对名称进行排序,但您的输出具有索引。我不确定你想要哪个。
这将按年龄对姓名进行排序(根据您的问题):
var sortedNames = ages.map(function(age, i) {
return {age:age, i:i};
}).sort(function(a, b) {
return a.age - b.age;
}).map(function(a) {
return names[a.i];
});
这会对索引进行排序(根据您的示例):
var result = ages.map(function(age, i) {
return i;
}).sort(function(i, j) {
return ages[i] - ages[j];
});
我建议将数据结构更改为这样的结构
people = [
{name: "John", age: 62},
{name: "Mike", age: 21},
{name: "Dave", age: 54}
];
people.sort(function(val1, val2) {
return val2.age - val1.age;
});
people;//[{name:"John", age:62}, {name:"Dave", age:54}, {name:"Mike", age:21}]
相关文章:
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- Javascript中的多维数组排序索引问题
- 如何按日期对Javascript对象数组排序
- 数组排序后显示更改
- 当许多元素相等时,Javascript数组排序无法正常工作
- Javascript数组排序速度受字符串长度的影响
- 按唯一键将对象数组排序为数组
- 以 js 为单位的数组排序
- js 数组排序无法正常工作
- 数组排序.论点从何而来
- 不需要的数组排序
- 数组排序不正确/不可预测,使用 indexOf 时
- Javascript将数组排序到树中
- 随后的多维数组排序会产生意外的结果
- 数组排序基于纯javascript搜索文本匹配
- Javascript自定义数组按数组排序
- 使用字符串按属性错误对对象进行数组排序
- 多维数组排序
- JavaScript与PHP在数组排序中的对比
- Javascript-关联数组排序