小编Kar*_*gar的帖子

JavaScript Map:为什么这不起作用?

我试图使用map生成一些随机数据.令我惊讶的是,我无法弄清楚为什么这段代码不起作用.

请考虑以下代码段,它按预期工作:

const empty = [undefined, undefined];
const rand = empty.map(item => Math.random());

Output: [0.4774752874308936, 0.8482276976659398]
Run Code Online (Sandbox Code Playgroud)

我试图简化一下并执行以下操作

const rand = Array(2).map(item => Math.random())

Output: [undefined × 2]
Run Code Online (Sandbox Code Playgroud)

我不明白为什么会这样.显然,由Array(n)和[]生成的两个数组都是典型的数组,并且具有所有原型方法.

Array(2) instanceof Array
true

[undefined, undefined] instanceof Array
true

Array.isArray(Array(2))
true

Array.isArray([undefined, undefined])
true
Run Code Online (Sandbox Code Playgroud)

有人能指出我在哪里错了吗?

javascript arrays

17
推荐指数
1
解决办法
3462
查看次数

Redux - 为什么要正常化?

我一直在努力学习如何更好地构建我的Redux商店,并偶然发现Dan的这一课.

https://egghead.io/lessons/javascript-redux-normalizing-the-state-shape#/guidelinesModal

虽然我理解如何以这种方式规范化我的数据,但我不明白它背后的动机.特别是,我有两个问题.

  1. 为什么简单的数组不够用?Dan提到 - "在复杂的应用程序中,我们可能有不止一个阵列,并且在不同阵列中具有相同ID的待机可能会失去同步".我不明白这个,我可以举一个例子吗?我在使用对象时看到的唯一好处是提高了效率,因为我们不需要映射整个数组,以防我想将某个待办事项委托给另一个reducer.

  2. 为什么我们需要维护allIds列表?当我们可以轻松地映射所有待办事项列表并获取它时,为什么要保持这种额外状态?

我知道normalizr会为我们做这件事,但为什么我们首先应该正常化呢?即使响应没有深度嵌套,标准化也有意义吗?

编辑1:

感谢您的回答,克里斯托弗.

让我们假设您的状态树看起来像这样

{
    user: {
        byId: {
            1: {
                id: 1,
                name: 'Buy stuff'
               }, 
            2: {
                id: 2,
                name: 'Yeah'
               }
            }
        },
        allIds: [1, 2],
        subscribedIds: [5],
    }
    department: {
        byId: {
            5: {
                id: 5,
                name: 'Sell Stuff'
            }
        },
        allIds: [5],
        subscribedIds: []
    }   
}
Run Code Online (Sandbox Code Playgroud)

我没有看到在这里有一个对象代替数组的好处.我也可以选择能够从部门获取ID订阅的待办事项,即使它是一个数组.看来我对这个概念的理解有点不足.你能详细说明吗?

javascript reactjs redux

14
推荐指数
2
解决办法
4877
查看次数

T-SQL - 获取具有相同B组的所有As的列表

我正在努力处理我正在尝试编写的棘手的SQL查询.看看下表:

+---+---+
| A | B |
+---+---+
| 1 | 2 |
| 1 | 3 |
| 2 | 2 |
| 2 | 3 |
| 2 | 4 |
| 3 | 2 |
| 3 | 3 |
| 4 | 2 |
| 4 | 3 |
| 4 | 4 |
+---+---+
Run Code Online (Sandbox Code Playgroud)

现在,从这个表中,我基本上想要一个包含完全相同的B组的所有As的列表,并为每个集合提供递增ID.

因此,上述输出设置为:

+---+----+
| A | ID |
+---+----+
| 1 |  1 |
| 3 |  1 |
| 2 …
Run Code Online (Sandbox Code Playgroud)

sql t-sql

6
推荐指数
1
解决办法
253
查看次数

标签 统计

javascript ×2

arrays ×1

reactjs ×1

redux ×1

sql ×1

t-sql ×1