我正在学习 Node ,现在我正在尝试订购这样的数组:
"lng" : [{
"ES" : 5,
"EN" : 3,
"IT" : 4
}]
(这是MongoDB中查询结果的一部分),我需要按数字对数组进行排序:
"ES" : 5,
"IT" : 4,
"EN" : 3
我使用了 sort()
但此函数按第一个参数的字母顺序对数组进行排序,但我需要按第二个参数排序,我尝试了很多方法但没有结果。
感谢您的帮助!
最佳答案
JavaScript 没有有序的对象,所以首先你应该将你的对象转换为这种类型的数组:
[
{ key: "ES", value: 5 },
{ key: "EN", value: 3 },
{ key: "IT", value: 4 }
]
然后按 value
键排序。
您可以按如下方式轻松完成:
// ("mongoDbResult" is the variable with an object you get from MongoDB)
var result = mongoDbResult.lng;
result = Object.keys(result).map(function (key) {
return { key: key, value: result[key] };
});
然后按 value
键排序:
result.sort(function (a, b) {
return (a.value < b.value) ? -1 : 1;
});
因此,您应该在 result
变量中得到一个排序数组。
关于arrays - 在 NodeJS 中按值排序数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28627315/