ES6将一个数组的元素还原为一个数组,其元素的出现频率

问题描述 投票:2回答:4

我有一个字符串,其中包含逗号分隔的数字,示例数组如下所示:>

const arr = ["2", "1,2", "2,3", "1,3"]

我想创建另一个数组,其中包含这些值的出现频率之和。

这是我要实现的算法

  1. 通过具有累加器数组的减速器循环遍历每个元素
  2. 分割每个元素并将其转换为数字数组
  3. 如果累加器索引为空,则将其初始化为零,否则将1加到预先存在的值上
  4. 这里是代码,我正在尝试

arr.reduce((acc, item) => { 
item.split(",").map((value, index) => {
    val = parseInt(value) 
    acc[val] === null ? acc[val] = 0 : acc[val] += 1 
  })
})

我收到错误Uncaught TypeError: Cannot read property 2 of undefined

我有一个字符串,其中包含一个逗号分隔的数字,一个示例数组看起来像这个const arr = [“ 2”,“ 1,2”,“ 2,3”,“ 1,3”]我想创建另一个数组,其中包含...

javascript arrays ecmascript-6 reducers
4个回答
3
投票

您必须为accumulator提供默认值,我建议您使用accumulator而不是使用.forEach().forEach()函数用于生成新数组,这里您只想遍历该数组,还有一件事,您必须在每次迭代时都返回.map()


2
投票

尽管您可以


2
投票
我看到几个问题。

-2
投票
null
© www.soinside.com 2019 - 2024. All rights reserved.