Javascript字符串indexOf无法按预期工作

时间:2014-04-15 01:41:58

标签: javascript

我必须遗漏一些东西..不确定为什么我的JavaScript失败或无法正常工作

var discount = 10;
var newTemp;

if (discount != null) {
    if (discount.indexOf("%") > -1) {
        newTemp = discount.substring(0, 2) + '%';
    } else {
        newTemp = discount;
    }
 } //end of outer if

以上脚本在折扣=“10.0%”时有效 但是当折扣= 10时失败

可能不是最好的方法,但我想要做的就是折扣价值包含%符号然后用新值设置newTemp变量。另外,请保持原样。

任何想法,为什么当折扣价值= 10时控制失败

2 个答案:

答案 0 :(得分:2)

因为“10%”是一个字符串,因此它有indexOf方法,10可能是整数或数字。

尝试discount.toString().indexOf('%')

答案 1 :(得分:0)

这是因为你没有追加'%'在其他分支。

var newTemp;
if (discount != null) {
    if (discount.indexOf("%") > -1) {
        newTemp = discount.substring(0, 2);
    } else {
        newTemp = discount;
    }
 } //end of outer if
 newTemp += '%';

同样如Hugo所说,数字10没有indexOf方法,这是一种字符串方法。