问题标签 [destructuring]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 如何手动高效地执行数组/对象解构?
数组解构非常有用:
看起来它是在 Javascript 1.7 中实现的,但随后被错误 1083498 删除。现在根据这张表,除了 Firefox 之外,任何浏览器都不支持它!:(
我希望我可以使用它,因为我不喜欢创建额外的不必要的变量。
解构:
没有解构:
有没有一种方法可以做到这一点,而无需创建额外的不需要inputArr
并多次从中提取?
ecmascript-6 - 解构数组、前 n 个元素和其余元素的优雅方式
我可以通过几种不同的方式解决这个问题,但我不确定是否有更优雅的方式来解决这个问题。
取一个数组
是否有一种使用数组解构的方法可以像thist一样工作:
我不知道会遇到问题。我觉得这应该可以通过解构来实现,但是我阅读它的方式我不知道该怎么做。
javascript - 如何在 ES6 中进行对象重组?
有没有办法在一个语句中做到这一点?
我想在一个语句中转换{a:2, b:3}
为。{b:3, c:2}
javascript - ES6 结构化作业?
ES6的新解构赋值特性现在已经广为人知(Babel 的 REPL 上的live copy );对于已经存在的变量:
ES6中有简单的converse吗?基于同名变量在现有对象上设置属性?(除了明显的o.a = a; o.b = b;
)
注意我不是在谈论创建对象时,我们可以使用美妙的新对象初始化器语法来做到这一点,这样我们就不会不必要地重复名称:
但是如果我已经有一个对象,我可以在 ES6 中做某种结构赋值吗?
javascript - 有没有办法可以重组解构分配的一部分?
假设我有一个数组数组,如下所示:
我想使用 ES6 的解构赋值将每个数组的第一个元素作为一个单独的变量,并将其余元素重新打包为另一个数组。在伪代码中:
这样的事情可能吗?
clojure - Clojure 中的循环解构
有没有办法recur
在循环中解构绑定?因此,例如,如果我想让y
保持不变
我知道这是不可能的,但是我怎么能得到类似的_
顺序解构recur
呢?
c++ - 如何在 C++ 中模拟解构?
在 JavaScript ES6 中,有一种称为解构的语言特性。它也存在于许多其他语言中。
在 JavaScript ES6 中,它看起来像这样:
我可以在 C++ 中做什么来获得类似的语法并模拟这种功能?
typescript - TypeScript 解构别名导入?
我为我的应用程序使用命名空间/模块。我们将一个大型应用程序分解为几个较小的“模块”。它们都是一起编译的,所以我们随时都有所有参考资料。如果我需要x.y
从模块访问模块,z
我可以简单地使用x.y
. 但是,我不想继续引用x
. 无论如何我可以解构x
为别名吗?例如(这不起作用,因此我的问题):
代替:
我可以做一些类似的事情来简化内部模块的导入别名吗?
typescript - TypeScript:多重解构和类型断言
我想知道在 TypeScript 中使用解构时如何断言多个变量的类型。
考虑:
const { OneTypeOfObject, AndAnother } = ProtoBuf.loadProtoFile('./ohYesProtobufs.proto').build('iAmANameSpace');
我怎么能断言它OneTypeOfObject
有一个类型OneType
并且AndAnother
有一个类型OtherType
?
我可以让它们都 any
像这样:
const { OneTypeOfObject, AndAnother } = <any>ProtoBuf.loadProtoFile('./ohYesProtobufs.proto').build('iAmANameSpace');
我真正想做的是这样的:
const { <OneType>OneTypeOfObject, <OtherType>AndAnother } = ProtoBuf.loadProtoFile('./ohYesProtobufs.proto').build('iAmANameSpace');
显然有人想过这样的事情:
https://github.com/Microsoft/TypeScript/commit/7a74d9f8d021f50201765d2170af8d249af90320
但我无法根据我所看到的找到答案......
更新
我尝试了大卫的两种方法,但都没有奏效。这是用于方法 2 的代码:
它导致了这个错误:
类型“ProtoBuf”不可分配给类型“{ OneTypeOfObject: OneType; AndAnother:其他类型;}'。“ProtoBuf”类型中缺少属性“OneTypeOfObject”。
clojure - 所有键的clojure相同的“:或”值
我已经定义了一个包含一堆字段的记录——其中一些是计算出来的,其中一些不直接映射到我正在摄取的 JSON 数据中的键。我正在为它编写一个工厂函数,但我希望有合理的默认/未找到值。有没有更好的方法来应对:or [field1 "" field2 "" field3 "" field4 ""...]
?我可以写一个宏,但如果我不需要,我宁愿不写。