【发布时间】:2018-07-24 06:38:32
【问题描述】:
let data = {"a":1,"b":2};
我想解构这个对象以自动创建 2 个名称等于 key 的变量而不提供名称。 我怎样才能做到这一点?我什至可以在不指定键名的情况下这样做吗?
let {} = data;
console.log(a) 然后应该给1
这可能吗?
我想要这个的原因是因为我有 string , str = `runcode -s ${a} `
我想在运行str 时自动获取“a”的值
即使我将 str 更改为 `runcode -s ${data.a} ` 并运行 str,data.a 也不会被 1 替换。我该如何解决这个问题?
【问题讨论】:
-
这只是个坏主意。假设对象是动态生成的,这意味着变量名也将动态生成。
-
不,你不能那样做。
with (data) { ... }是一个声明,它可能会按照您的意愿行事,但缩短代码 this 会大大损害可读性和性能。由于这个原因,只允许在非严格模式下使用with,并且由于这个原因,“自动”解构也是不可能的。 -
我想要这个的原因是因为我有 string , str = "runcode -s ${a}" 并且我想在我运行
str时自动获取 "a" 的值,即使我将 str 更改为“runcode -s ${data.a}”并运行str,data.a 不会被 1 替换。我该如何解决这个问题 -
@user3439399 使用反引号而不是引号...
-
@PatrickRoberts... 它不起作用。因此,我认为我们需要首先创建一个名为“a”的变量,并且只能以这种方式使用它。我错了吗?
标签: javascript object ecmascript-6 destructuring