JavaScript:将字符串/数字转换为数字或null,0返回0
JavaScript: convert string/number to a number or null, return 0 for 0?
在我的JavaScript中,我目前有一个很好的表达式:
var b = {
items: +a || null
};
如果a
是字符串或大于0的数字,则将b.items
设置为数字;如果a
是null
/undefined
,则将其设置为null
。
但是,如果a
为0,它也会返回null
。现在我想更改它,使其在a
为0的情况下返回0。(这似乎是处理真实数据的正确方法:如果它是零,我们想知道它是零;如果它不存在,我们也想知道。(
我看了这个问题,试了两个:
items: 1/a ? +a: null
items: isNaN(a) ? null : +a
但是如果CCD_ 10为空,则这两者都返回0。它们应该返回null。
如果a
为0,有没有办法返回0,如果未定义,有没有方法返回null
?
更新:以下是表达式需要执行的所有操作的摘要:
"72" -> 72
"0" -> 0
1 -> 1
0 -> 0
null -> null
undefined -> null
您可以专门测试空和未定义的
var b = {
items: ('undefined' === typeof a || null === a) ? null : +a
};
您可以在三元运算符中检查a
的类型。
var b = {
items: typeof (+a) == 'number' ? +a : null
};
演示:
var b = {
items: typeof (+"0") == 'number' ? +"0" : null
};
alert(b.items);
编辑
破解以检查null
。
function f(a) {
return isNaN('' + a) ? null : parseFloat(a)
}
alert(f(0));
alert(f(null));
alert(f(undefined));
试试这个
var b = {
items: +a ||(a==0?0:null)
};
这也应该起作用:
var b = {
items: a != null? +a : null
};
基于https://stackoverflow.com/a/15992131/1494833
相关文章:
- 数组在递归方法中设置为null
- 通过单击表单中的按钮,在代码生成中使用javascript生成字母数字代码
- 测试索引值是否等于某个数字的倍数
- 将数字转换为一定数量的硬币
- 键入最后一位数字后自动提交
- 如何在javascript中迭代数字列表
- 字符串在将其传递给另一个活动Android JavaScript时读取Null
- Javascript逻辑运算符和字符串/数字
- 无法获取属性'selectedIndex'的未定义引用或null引用
- 如何在javascript中获得与特定数字相等的随机数
- Meteor方法在客户端返回null,在客户端运行的相同方法返回正确的值
- 如果元素's的ID以数字开头
- 来自文本输入null的html javascript变量
- 递增一个数字而不去掉前导零
- 我如何检查一个变量是否不是null,也不是数字
- 只有当数据为数字或null时,才会触发删除GridView中的行时使用数据进行确认
- 正确的方法来检查如果不是null和一个数字
- 流星空格-期望的标识符,数字,字符串,布尔值或null
- JavaScript:将字符串/数字转换为数字或null,0返回0
- JQuery价格格式,无值/null为数字0