按值降序对关联数组进行排序
Sort associative array by value descending
我有一个以键作为字符串的关联数组。现在我想按值降序对它们进行排序。
这是预期的结果:
[orange: 3, apple: 2, banana: 1]
但有:
var arr = [];
arr["apple"] = 2;
arr["orange"] = 3;
arr["banana"] = 1;
arr.sort(function(a,b) {
return a.val - b.val;
});
我收到初始订单:
[apple: 2, orange: 3, banana: 1]
在 JS 中,数组的键应该是非负整数。
如果使用其他键,则将数组视为纯对象,而不是数组:
var arr = [];
arr.apple = 2;
arr.length; // 0 -- array methods will ignore your property
由于您没有使用数组的特殊行为,因此您应该改用普通对象:
var arr = {
apple: 2,
orange: 3,
banana: 1
};
但是,对象的属性不是排序的。所以对它们进行排序是没有意义的。
要绕过此限制,您可以使用对象数组,例如
var arr = [
{key: "apple", value: 2},
{key: "orange", value: 3},
{key: "banana", value: 1}
];
然后,您将能够按照 JavaScript 中的按字符串属性值对对象数组进行排序中所述对这些对象进行排序
相关文章:
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- 在数组的 2/3 上调用自身的排序算法
- 数组值的排序以匹配另一个数组ES6
- 按不同项目对对象数组进行排序
- 根据Javascript中的字符串值对数组的数组进行排序
- 在不同的javascript数组中对json响应进行排序
- 对对象数组中的数组进行排序
- 按特定键对对象数组进行排序
- 使用jquery根据数组对表行进行排序
- 尝试对对象数组进行排序但拼接不是一个函数
- 对javascript中某些键的对象数组进行排序
- Javascript按数字顺序排序()数组
- Javascript排序索引链接数组
- 在jquery中对时间数组进行排序
- 如何在具有相同 ID 的 Javascript 中按排序函数对关联数组进行排序
- Javascript中的多维数组排序索引问题
- 如何在mongodb中根据数组内容的差异进行排序
- 在Javascript中对具有特定异常的对象数组进行排序
- 数组数据排序类似mysql查询
- 在小于O(n)时间内找到(排序)数组中的重复元素