我有一个来自PHP端的结果,json_encode并将所有值作为字符串发送(而不是它的原始类型).来的字符串quote_tax是a 1|0,当然这是true|false例如:
{
"country_id": "3",
"country_name": "Italy",
"contract_tax": "1",
"quote_tax": "0",
"contract_inflation": "0",
"quote_inflation": "0"
}
Run Code Online (Sandbox Code Playgroud)
当我想基于这样的值执行某些操作时,因为它们以字符串形式出现,我需要做这样的事情:
data.quote_tax == '1'
? $('#contract_tax').val(1).attr('checked', 'checked')
: $('#contract_tax').val(0).removeAttr('checked');
Run Code Online (Sandbox Code Playgroud)
我确实知道.parseInt()将它们转换为整数,但我相信那时我需要进行相同的比较但是这种情况比较INT:
data.quote_tax == 1
? $('#contract_tax').val(1).attr('checked', 'checked')
: $('#contract_tax').val(0).removeAttr('checked');
Run Code Online (Sandbox Code Playgroud)
我试过这种方式:
Boolean(data.quote_tax) == true
? $('#contract_tax').val(1).attr('checked', 'checked')
: $('#contract_tax').val(0).removeAttr('checked');
Run Code Online (Sandbox Code Playgroud)
它不起作用,因为Boolean(data.quote_tax)总是评价true即使data.quote_tax = '0'.
我已经检查了这些帖子,但我找不到合适的解决方案:
任何想法在这里有什么问题或如何做到这一点?
Javascript中的值是"truthy"或"falsy",这意味着它们将被解释为true或false在布尔上下文中.在数字的情况下,0是false和所有其他人一样true.如果将值转换为数字,则不必执行任何其他转换将其视为布尔值.
var x = parseInt('1');
x ? console.log(true) : console.log(false);
x = parseInt('0');
x ? console.log(true) : console.log(false);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
669 次 |
| 最近记录: |