小编hml*_*lee的帖子

当元素未知时,如何获取数组中元素的数量

所以我试图弄清楚如何生成一个关联数组,列出数组的元素,以及每个元素出现的次数,而不事先知道元素是什么.

举个例子,假设我有一系列动物: var animals = ['Rhino', 'Lion', 'Dog', 'Parrot', 'Parrot', 'Cat', 'Zebra', 'Rhino']

我想生成一个最终看起来像的对象:

{ 'Rhino': 2, 'Lion': 1, 'Dog': 1, 'Parrot': 2, 'Cat': 1, 'Zebra': 1 }
Run Code Online (Sandbox Code Playgroud)

如果我事先知道阵列中的动物是什么,我当然可以这样做:

var animalsCount = {};

var numberOfRhinos = animals.filter(function(animal) {
   return animal == 'Rhino'
}).length;

animalsCount['Rhino'] = numberOfRhinos
Run Code Online (Sandbox Code Playgroud)

得到一个像我想要的对象.问题当然是根据动物的数量,这变得非常冗长和重复.同样,如果我不知道每种动物是什么,我就不能用这种方式创造物体.必须有一种方法可以在不知道这些信息的情况下做到这一点,但我被困住了.

javascript arrays

16
推荐指数
2
解决办法
1592
查看次数

如何将数组数组中相同索引处的元素加到一个数组中?

假设我有一个数组数组,如下所示:

[
  [0, 1, 3],
  [2, 4, 6],
  [5, 5, 7],
  [10, 0, 3]
]
Run Code Online (Sandbox Code Playgroud)

如何生成一个新数组,该数组在javascript中对内部数组的每个位置的所有值求和?在这种情况下,结果将是:[17,19,19].无论内部数组的长度如何,我都需要能够提供一个有效的解决方案.我认为这可以使用map和for-of的一些组合,或者可能减少,但我不能完全围绕它.我搜索过但找不到任何与此相符的例子.

javascript arrays grouping

15
推荐指数
3
解决办法
7659
查看次数

使用纱线工作区在 monorepo 中的项目之间共享配置变量?

是否可以在使用纱线工作区设置的 monorepo 的子文件夹之间共享配置变量/环境变量?我们有一个项目的 monorepo,其中几个子文件夹是使用 create-react-app 构建的项目。在这些单独的文件夹中,我们可以使用 .env 文件来指定配置值,当我们在单独级别的 package.jsons 中使用构建/启动脚本时,它们会得到很好的使用。

但是,我们还有其他子文件夹,它们只是导入 CRA 应用程序的库。我们想在这些库中指定 config/env 变量,但到目前为止还没有找到一种方法来在我们构建或启动导入库的项目时传播这些值。已经在库本身以及 CRA 应用程序根文件夹中尝试过 .env 文件,但似乎没有任何效果......

monorepo yarnpkg yarn-workspaces

10
推荐指数
1
解决办法
1385
查看次数

为什么addChangeListener应该在componentDidMount而不是componentWillMount?

我在这里看到这一行作为另一个问题的答案:

"componentWillMount应该是componentDidMount,否则你将在节点中泄漏事件发射器."

我真的不明白.有人可以更详细地解释一下吗?

更多信息:

使用flux构建react应用程序,作为初始渲染的一部分,子组件计算一些数据.理想情况下,在计算此数据之后,我想调用一个动作,用一部分新数据更新商店的状态.

通常,更新商店的状态会发出导致重新呈现的更改事件.但是,因为更改侦听器直到componentDidMount(而不是componentWillMount)才被添加,所以我的顶级组件无法侦听初始渲染期间发生的更改并启动重新渲染.

如果我将addChangeListener移动到似乎可以修复此问题的componentWillMount,但上面的引用表明这是一个坏主意?

javascript flux reactjs reactjs-flux

8
推荐指数
1
解决办法
2416
查看次数