有没有改善以下语句来检查,如果一个更好的办法val()是'true'或'false',如果它是那么这将其更改为一个布尔值.原因是,某些值可能是一个单词.
var thisval = $(this).val();
if (thisval == "true"){
ao[id] = true;
} else if (thisval == "false"){
ao[id] = false;
} else {
ao[id] = $(this).val();
}
Run Code Online (Sandbox Code Playgroud)
Tib*_*bos 15
最可读:
var thisval = $(this).val();
ao[id] = thisval === 'true' ? true :
thisval === 'false' ? false :
thisval;
Run Code Online (Sandbox Code Playgroud)
基于条件运算符的单行程:
var thisval = $(this).val();
ao[id] = thisval === 'true' ? true : (thisval === 'false' ? false : thisval);
Run Code Online (Sandbox Code Playgroud)
基于||的单线程 和&&行为:
var thisval = $(this).val();
ao[id] = thisval === 'true' || (thisval !== 'false') && thisval || false;
Run Code Online (Sandbox Code Playgroud)
最短的单线(上述组合):
var thisval = $(this).val();
ao[id] = thisval === 'true' || (thisval === 'false' ? false : thisval);
Run Code Online (Sandbox Code Playgroud)
试试JSON.parse().
"true"而"false"实际上是JSON表示的true,false.这就是ajax如何从服务器端将json对象解析为字符串.如果在服务器端,我们返回true,false =>浏览器将接收它作为字符串"true"或"false"(json表示)
if ( $(this).val() == "true" || $(this).val() == "false") {
ao[id] = JSON.parse($(this).val());
}else {
ao[id] = $(this).val();
}
Run Code Online (Sandbox Code Playgroud)