问题标签 [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.

0 投票
3 回答
39130 浏览

php - php中对象/关联数组的解构赋值

在 CoffeeScript、Clojure、ES6 和许多其他语言中,我们有对象/映射/等的解构,有点像这样:

我在 php 中找到了可以让您像这样解构数组的list函数:

有没有办法在 PHP 中解构对象或关联数组?如果不在核心库中,也许有人写了一些智能辅助函数?

0 投票
1 回答
3427 浏览

swift - Swift: Unpacking a tuple into mutable and immutable variables simultaneously

I have a Swift function which returns a tuple of two values. The first value is meant to usually, but not always, be used as an "updated" version of a piece of mutable state in the caller (I know I could also use inout for this instead of a tuple, but that makes it more annoying to keep the old state while preserving the new one). The second value is a generally immutable return value produced by the function, which is not intended to override any existing mutable state.

Conceptually, the usage looks like this:

The problem here, obviously, is that retval1, retval2, and retval3 are never declared, and the compiler gets angry.

state must be a var and must not be redeclared, so I can't write

However, retval is never modified and should be declared with let as a matter of best practices and good coding style.

I was hoping the following syntax might work, but it doesn't:

How should I go about unpacking / destructuring this tuple?

0 投票
2 回答
1965 浏览

dictionary - 如何在不知道 Clojure 中的键的情况下将映射分解为键值对?

假设我有一张这样的地图

我想像这样映射这个(注意 - 非工作伪代码):

如果不先获取函数的键,映射这些键并从函数中读取它们,这是否可能?

我的问题是:如何在不知道 Clojure 中的键的情况下将映射分解为键值对?

0 投票
1 回答
227 浏览

haskell - Haskell 中的镜头和 Clojure 中的解构有何异同?

假设:

  • 我想解析一个嵌套的 JSON 字符串。
  • 我知道 Haskell 鼓励用类型系统解决问题,而 Clojure 避开类型系统,更喜欢用数据结构解决问题。
  • 我知道在这两种语言中,这个过程都被称为解构——但它在 Clojure 中没有另一个名字,而在 Haskell 中,这也被称为使用 lens,所以我将 Clojure 称为解构和移动上

我们可以看到我们可以在 Haskell中创建这样的镜头:

它的目的是从数据结构中获取health值。game

我们可以在 Clojure中进行这样的解构:

目的是从嵌套结构中获取名称、页面等的嵌套值。

在这两种情况下,您都提出了一种从嵌套结构中可重用检索值的机制。

我的问题是:Haskell 中的镜头和 Clojure 中的解构有何异同?

0 投票
2 回答
343 浏览

scala - Scala extreme destructuring?

I have this line of code, where I use the most idiomatic way I know, for destructuring an object coming back from a function:

The object's prototype being:

Of course I could otherwise:

But the latter is rather a different form of stating the same problem - this is really not elegant. Could a Scala macro come to the rescue to provide a succinct idiom? perhaps allowing syntax like either:

0 投票
1 回答
102 浏览

dictionary - 大型哈希映射的Clojure单个函数参数?

我正在尝试解析返回 CSV 数据(没有标题)的旧 API 的结果。该parse-response功能很好用,但是当我尝试检查它时,verify-response它会以ArityException Wrong number of args (0) passed to: PersistentHashMap. 如何通过检查键字段并在无效时创建替代错误哈希映射的函数传递哈希映射?

0 投票
4 回答
4132 浏览

javascript - ES6解构函数参数——命名根对象

有没有办法保留解构函数参数的名称?即,根对象的名称?

在 ES5 中,我可能会这样做(使用继承作为比喻来说明这一点):

我使用同一个options对象来保存多个配置参数。有些参数是父类使用的,有些是子类使用的。

有没有办法用 ES6 中的解构函数参数来做到这一点?

还是我需要提取所有选项setupChildClass6()以便它们可以单独传递到setupParentClass6()

0 投票
2 回答
12916 浏览

vector - 如何在不切片的情况下解构向量?

我可以通过获取向量切片并引用元组中的项目来解构元组向量:

如何直接解构向量,将项目移出元组。像这样的东西:

编译上述导致错误:

0 投票
16 回答
76352 浏览

javascript - 是否可以解构到现有对象?(Javascript ES6)

例如,如果我有两个对象:

我想将 x 和 y 值从 foo 转移到 oof。有没有办法使用 es6 解构语法来做到这一点?

也许是这样的:

0 投票
2 回答
1252 浏览

groovy - Groovy 在列表上的解构/分解不一致?

正面案例:可以进入列表

负面案例:不能做同样的事情