Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用可选链接分配变量?_Javascript_Html - Fatal编程技术网

Javascript 使用可选链接分配变量?

Javascript 使用可选链接分配变量?,javascript,html,Javascript,Html,我知道在撰写本文时,只有少数浏览器支持它,但是有没有一种聪明的方法通过可选的链接将值分配给深度嵌套对象中的键?我尝试了下面的方法,但对我无效: const foo = {bar: {baz: {quux: ''}}}; foo?.bar?.baz?.quux = 'quux' // Uncaught SyntaxError: Invalid left-hand side in assignment 我能想到的唯一方法就是通过以下方式对其进行有条件检查: if (foo?.bar?.baz?.

我知道在撰写本文时,只有少数浏览器支持它,但是有没有一种聪明的方法通过可选的链接将值分配给深度嵌套对象中的键?我尝试了下面的方法,但对我无效:

const foo = {bar: {baz: {quux: ''}}};
foo?.bar?.baz?.quux = 'quux'  // Uncaught SyntaxError: Invalid left-hand side in assignment
我能想到的唯一方法就是通过以下方式对其进行有条件检查:

if (foo?.bar?.baz?.quux)
  foo.bar.baz.quux = 'quux'

有没有更好的方法可以做到这一点?

一些代码,例如谷歌中的一些代码,可以执行以下操作:

constfoo={bar:{baz:{qux:''}};
foo&&foo.bar&&foo.bar.baz&&(foo.bar.baz.qux='qux');
console.log(foo);

log(foo&&foo.bar&&foo.bar.wahla&&foo.bar.wahla.haha)可选链接。但它不能用于财产转让。库可以帮助您以一种干净的方式完成它,比如方法。但是,否则,您将需要检查/创建您的自我分配必须位于左侧的中间对象,如第一个示例所示,并且由于您可能希望有条件地设置值,您可以像这样使用
lodash.set
foo?.bar?.baz?.qux&&set(foo,'bar.baz.qux,'qux')可选链接的目的是避免通过
foo&&foo.bar&&foo.bar.baz&&…
进行检查,我只是想看看是否有一种使用可选链接的实用方法。