下面是我要排序的数组 -
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 :(得分:1)
这是一个可行的解决方案,但在进行数学计算时需要解析值。
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).map(function(base){
if(_.isNumber(base.val)){
base.val = base.val.toFixed(2);
}
return base;
});
console.log(options);
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>
<body>
<script src="https://cdn.jsdelivr.net/lodash/4/lodash.min.js"></script>
</body>
</html>
toFixed()
返回一个字符串,因此您必须使用parseFloat
进行数学计算来解析它。