JavaScript:关于数组声明的 If 语句
Posted
技术标签:
【中文标题】JavaScript:关于数组声明的 If 语句【英文标题】:JavaScript: If statement on Array declaration 【发布时间】:2013-05-29 22:06:45 【问题描述】:是否可以在数组声明中放置 if 语句?
代码:
dayOfWeek = [if($('#sunday').checked())$('#sunday').val()];
浏览器错误:Uncaught SyntaxError: Unexpected token if.
我也试过了:
$('#domingo').checked() ! $('#domingo').val() : 0
浏览器错误:未捕获的 SyntaxError:意外令牌!
编辑
正如@bažmegakapa 回答的那样,正常工作的代码是:
diasSemana = new Array($domi.is(':checked') ? $domi.val() : null, $lun.is(':checked') ? $lun.val() : null);
这不起作用:
$('#domingo').checked() ? $('#domingo').val() : 0
浏览器显示此错误:Uncaught TypeError: Object [object Object] has no method 'checked'
问候!
【问题讨论】:
使用[]
而不是new Array()
。
【参考方案1】:
你需要的是ternary or conditional operator:
$('#domingo').checked() ? $('#domingo').val() : 0
但是,为同一个元素查询 DOM 两次并不是一个好主意。将生成的 jQuery 对象预先保存到变量中并重复使用:
var $domi = $('#domingo');
dayOfWeek = [$domi.checked() ? $domi.val() : 0];
我不知道.checked()
是什么,也许你的意思是.is(':checked')
。
Some fiddle demo to play with
【讨论】:
很好的答案!第一种方法向我显示了一个错误,但第二种方法很好。问候 @eyyo 是的,错误是由于.checked()
函数不存在:)。【参考方案2】:
尝试使用 javascript 三元运算符,记录在 here:
$('#domingo').checked() ? $('#domingo').val() : 0
【讨论】:
此代码向我显示此错误:未捕获的类型错误:对象 [对象对象] 没有“检查”方法。还是谢谢以上是关于JavaScript:关于数组声明的 If 语句的主要内容,如果未能解决你的问题,请参考以下文章
为啥在 JavaScript 的 IF 语句中允许重新声明变量