我可以在函数数组中放入单行指令吗?

时间:2016-05-11 18:32:49

标签: javascript

我不知道我是否清楚,但我想要做的是这样的事情:

 ajaxUpdate= $.ajax({
                        url: "updateSheet.php",
                        type: "post",
                        data: {
                            'update': 1,
                            'id': $('#numbah'+numbah+'').attr("class"),
                            'x': if (x) x,
                            'y': if (y) y,
                            'title': if (title) title,
                            'content': if (content) content
                        }
                    });

类似于'x': if (x) x,吗?我无法冒险运行这部分代码损坏,因为它可能会弄乱我的文件。

3 个答案:

答案 0 :(得分:2)

只需使用ternary operator并执行x ? x : ''即可。这表示如果x是真实的(在您的情况下,如果它已设置),则返回x否则返回空字符串。所以你可以这样做:

ajaxUpdate= $.ajax({
                    url: "updateSheet.php",
                    type: "post",
                    data: {
                        'update': 1,
                        'id': $('#numbah'+numbah+'').attr("class"),
                        'x': x ? x : '',
                        'y': y ? y : '',
                        'title': title ? title : '',
                        'content': content ? content : ''
                    }
                });

答案 1 :(得分:1)

Javascript有一个三向操作符?:,您可以这样使用:

title: title ? title : '',
content: content ? content : ''

如果变量为空,则发送空字符串,否则发送内容。

或者,您可以使用逻辑OR运算符||

title: title || ''
content: content || ''

它有点短。

答案 2 :(得分:1)

您可以使用三元运算符 - info MDN

ajaxUpdate= $.ajax({
                    url: "updateSheet.php",
                    type: "post",
                    data: {
                        'update': 1,
                        'id': $('#numbah'+numbah+'').attr("class"),
                        'x': x == someValue ? x: '',
                        'y': y == someValue ? y: '',
                        'title': if (title) title,
                        'content': if (content) content
                    }
                });