【发布时间】:2017-03-01 14:00:02
【问题描述】:
下面是我想要排序的数组 -
var baseBetAmount = [
{
val: 'OtherBaseBet',
text: 'Other'
},
{
val: 0.10,
text: '$0.10'
},
{
val: 0.20,
text: '$0.20'
},
{
val: 0.50,
text: '$0.50'
},
{
val: 1,
text: '$1'
},
{
val: 2,
text: '$2'
}]
我在下面写函数来排序。
var options= _.sortBy(baseBetAmount)
它在输出下方返回 -
[
{
val: 'OtherBaseBet',
text: 'Other'
},
{
val: 0.1,
text: '$0.10'
},
{
val: 0.2,
text: '$0.20'
},
{
val: 0.5,
text: '$0.50'
},
{
val: 1,
text: '$1'
},
{
val: 2,
text: '$2'
}]
这里 0.10 被 0.1 替换, 0.50 被 0.5 替换,依此类推。 任何人都可以在这里帮助我,我不希望 0.10 被 0.1 取代等等
【问题讨论】:
-
0.50和0.5相同。如果你想要0.50,试试num.toFixed(2) -
总是这样,因为 0.1 与 0.10 作为数字相同。只有字符串不同。我建议只在数字的视觉效果中使用
.toFixed(2),将其转换为点后两位数字的字符串。请注意在任何计算之后执行此操作。所以在这种情况下,除了默认:bet.text = "$" + bet.val.toFixed(2); -
但是如果这个数组包含 0.100000 或 0.2400000 怎么办
-
没关系。 0.1 作为数字与 0.1000000 相同,因此任何计算都将保持不变。只有字符串不同,使用 toFixed(),您可以在数字的字符串表示中添加任意数量的尾随零。
-
@Shilly 实际上我不想更改此数组中的值,它们应该保持原样,我正在使用这些值在其他地方打印。价值观不应该随任何变化而改变
标签: javascript underscore.js lodash