在 JavaScript 中是否有类似可选链接的赋值
Is there something like optional chaining for assignment in JavaScript
可选链接在访问数据时是一个强大的功能,例如
const options = cache.[server]?.[channel]?.[service]
现在写数据的时候我们一般需要做类似
cache[server] ??= {}
cache[server][channel] ??= {}
cache[server][channel][service] = options
是否有像可选链接这样的东西可以使赋值变得更轻(也许在一行中)?
类似于:
cache[server]??{}:[channel]??{}:[service]=options
在这种情况下,在其后添加 {}
或 []
将允许指示如果为空则预期分配的内容。
正如@Bergi 所提议的,最接近的方法是这样写:
((cache[server] ??= {})[channel] ??= {})[service] = options
您可以使用括号来转换
cache[server] ??= {}
cache[server][channel] ??= {}
cache[server][channel][service] = options
变成一个表达式
((cache[server] ??= {})[channel] ??= {})[service] = options
可选链接在访问数据时是一个强大的功能,例如
const options = cache.[server]?.[channel]?.[service]
现在写数据的时候我们一般需要做类似
cache[server] ??= {}
cache[server][channel] ??= {}
cache[server][channel][service] = options
是否有像可选链接这样的东西可以使赋值变得更轻(也许在一行中)?
类似于:
cache[server]??{}:[channel]??{}:[service]=options
在这种情况下,在其后添加 {}
或 []
将允许指示如果为空则预期分配的内容。
正如@Bergi 所提议的,最接近的方法是这样写:
((cache[server] ??= {})[channel] ??= {})[service] = options
您可以使用括号来转换
cache[server] ??= {}
cache[server][channel] ??= {}
cache[server][channel][service] = options
变成一个表达式
((cache[server] ??= {})[channel] ??= {})[service] = options