0

我只是想使用以下方法从字符串中获取第一个和第三个字符

function kFormatter(num) {
    return num > 999 ? (num/1000).toFixed(1) + 'K' : num
}
var AmountOrdered = Math.ceil($(this).val() / 100.0) * 100;
var formatAmountOrdered = kFormatter(AmountOrdered);
console.log(formatAmountOrdered.substring(0, 1));

在我的控制台日志中,我看到以下错误

Uncaught TypeError: Object 600 has no method 'substring' 
4

3 回答 3

5

将函数更改为

function kFormatter(num) {
    return num > 999 ? (num/1000).toFixed(1)+'K' : ''+num
}

这样它总是返回一个字符串。

于 2013-11-04T16:57:30.373 回答
0

似乎子字符串int在您的代码中被转换为。您需要将其转换为string

var formatAmountOrdered = kFormatter(AmountOrdered) + '';
于 2013-11-04T16:57:38.823 回答
0

问题是如果参数num不大于 999,函数将返回一个数值,而不是字符串。数值没有substring方法。

您可以通过更改来修改表达式以始终返回字符串:

return num > 999 ? (num/1000).toFixed(1) + 'K' : num

至:

return num > 999 ? (num/1000).toFixed(1) + 'K' : num + ''
于 2013-11-04T16:57:55.920 回答