我正在为我的Web应用程序使用JavaScript和jQuery。在一种情况下,我使用三元运算符来分配对象值时优化代码。

我已将d值手动设置为true进行测试。但是,此值将根据我的应用程序中客户给定的数据而有所不同。

d=true;
var args = { d ? { target:"div"} : {main:"body"}, status:"enabled", updated:"yes" };


但这不起作用,并引发脚本错误。您能否建议如何以优化的方式更新对象数据。

最佳答案

那是不正确的JavaScript语法,您无法通过这种方式动态定义对象的属性。你可以这样做:

var args = {status:"enabled", updated:"yes"};
d ? (args.target = "div") : (args.main = "body");

在ES2015中,您可以执行以下操作:
var args = {[d ? "target" : "main"]: d ? "div" : "body", status:"enabled", updated:"yes"};

07-24 09:44
查看更多