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 输出 素数/质数

为啥在 JavaScript 的 IF 语句中允许重新声明变量

JavaScript 第3天学习规划丨循环-for数组

JavaScript基础语法

为什么if else 语句里不能用函数声明定义函数,而可以用函数表达式定义函数

关于javascript函数中if语句的问题 - if语句返回true但函数返回false如何