问题标签 [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 - 可以使用解构赋值来影响 CoffeeScript 中的投影吗?
我在理解 CoffeeScript 中的解构赋值时遇到了一些麻烦。该文档包含几个示例,这些示例似乎暗示在分配期间重命名对象可用于投影(即映射、翻译、转换)源对象。
我正在尝试投影a = [ { Id: 1, Name: 'Foo' }, { Id: 2, Name: 'Bar' } ]
到b = [ { x: 1 }, { x: 2 } ]
. 我尝试了以下但没有成功;我显然误解了一些东西。谁能解释这是否可能?
我一去不复返的可怜尝试[ { x: 1 }, { x: 2 } ]
CoffeeScript 的并行赋值示例
我将这个示例理解为暗示可以重命名变量,在这种情况下用于执行交换。
CoffeeScript 的任意嵌套示例
我将这个示例理解为从任意对象定义属性的选择,其中包括将数组的元素分配给变量。
更新:使用 thejh 的解决方案来展平嵌套对象数组
clojure - 为什么不破坏 def 形式?
在一种let
形式(Clojure here)中,我可以做类似的事情
wheresvd
返回一个长度为 3 的列表。这是一件很自然的事情,所以为什么我们没有
及其作为def
表单默认行为的各种概括?我看不出这会如何干扰def
已经在做的任何事情。了解 Lisp 或 Clojure 的 Zen 的人能否解释一下为什么def
不支持强大的绑定(带解构)let
?
f# - 如何在 F# 中对解构进行抽象
我有一些我真的想摆脱的代码重复 -
如您所见,它是相同的算法重复 3 次。但是,我不知道如何概括需要传递像match expr with | destructureFn a -> Some a | _ -> None
. 有人可以帮忙吗?实际上,我的代码中有 5 次重复(并且还在增长)需要分解。
干杯!
* 结论 *
使用 desco 的答案,我已经达到了这个重构 -
谢谢德斯科!
clojure - 将变量列表单独传递给clojure函数
我一直在玩clojure,并决定制作一个结合了mapcat和list的高阶函数来模拟这种行为:
我的第一次尝试是定义 mapcatList 如下:
显然,该函数的行为不像我想要的那样,我认为这是因为这两个列表被放入一个列表并作为单个参数传递,而不是两个。我能够通过以下方式纠正这种情况,
此解决方案适用于两个列表,但我希望该函数使用可变数量的参数。
我的问题:如何将可变数量的参数传递给函数,然后解构它们,以便将它们作为单独的参数一起传递给“mapcat 列表”?
clojure - 地图重构
在 clojure 中,我可以像这样解构地图:
这类似于 CoffeeScript 的方法:
CoffeeScript 也可以这样做:
Clojure中有这样的快捷方式吗?
macros - “真的需要”解构宏参数吗?
我知道 LISP 宏参数中的解构是一件好事;我想知道它是否必不可少。举个例子,
和
似乎(大致)等效-除了检查参数的正确形式。
我的猜测是解构使代码更容易编写/理解,但是任何使用它的代码都可能被翻译成没有的代码。我是对的还是这是一个愚蠢的初学者的错误?
javascript - 带块的常量声明
最近我正在研究 Firefox Add-on Builder SDK 源代码,并偶然发现了这样的常量声明:
我可以找到有关CommonJS Modules的信息,但是这个作业的剩余部分让我有点困惑,因为它必须是特定于语言的,我无法在谷歌上搜索任何内容。
有人可以向我指出一些解释这里发生了什么的规范/草案吗?
javascript - 我在哪里可以获得有关 JavaScript 函数的对象参数语法的信息?
如果我想调用这样的函数:
通常我必须像这样表达我的函数定义:
但是这个很棒的语法在 spidermonkey 中用于定义函数是完全有效的:
这个功能是什么?
clojure - 从集合到有序集合
我遇到了某种与解构相关的心理障碍……
给出:
但是我如何从以下位置获得相同的排序集:
或从作为参数传递的集合(未排序)中:
我尝试了几次解构,我在想:
会起作用,但事实并非如此。
我想知道如何做到这一点,如果你能解释为什么我的推理方式是虚假的,那就更好了......
clojure - 在保持原始值的情况下,解构 Clojure 函数的参数。
您可以解构函数参数但仍然可以使用原始参数吗?我现在这样做的方式只是let
在函数体内使用一个表单,但我想知道是否有更简洁的方法。