【发布时间】:2018-03-04 12:15:54
【问题描述】:
我正在尝试根据其属性(价格)对对象进行排序
var arr = [{
name: 'Apple',
price: '1.03'
},
{
name: 'Cherry',
price: '0.33'
},
{
name: 'Mango',
price: '0.53'
}
]
现在我使用 lodash 按价格对其进行排序:
arr = _.sortBy(arr, 'price' ).reverse();
现在arr[0] 应该是苹果,因为它的价格最高,但不是。
有什么问题?
【问题讨论】:
-
由于
price是您数组中的一个字符串,您可能会得到一些意想不到的结果。 -
我想 Lodash 使用的是字母排序而不是数字排序,因为您的
price字段是字符串而不是数字。 -
@MohammadUsman 是对的,但我得到的结果非常正确.. jsfiddle.net/L7y9kbhh/4
-
这个stackoverflow.com/questions/979256/… 可能对你有帮助
-
不知道你为什么使用 lodash,在 POJS 中:
arr.sort((a,b) => b.price - a.price)(对于最低索引的最高值)。
标签: javascript arrays object lodash