多维数组中的出现次数

问题描述 投票:-2回答:1

我有一个看起来像这样的多维数组

[1:[1:mammal,2:cat,3:fur],
 2:[1:mammal,2:dog,3:fur],
 3:[1:mammal,2:cat,3:fur],
 4:[1:fish,2:trout,3:scales]]

我希望计算动物的出现次数以返回这样的数组

[cat:2,dog:1,trout:1]

我一直没有尝试过for循环,有没有更好的方法呢?

javascript arrays multidimensional-array
1个回答
0
投票

您的语法不正确,将更容易返回具有键值对的对象。

这里是使用reduce功能的示例:

const animals = 
[ [ 'mammal', 'cat', 'fur' ],
  [ 'mammal', 'dog', 'fur' ],
  [ 'mammal', 'cat', 'fur' ],
  [ 'fish', 'trout', 'scales' ] ]

const res = animals.reduce((acc, arr) => {
    for (const item of arr) {
	acc[item] = acc[item] !== undefined ? acc[item] + 1 : 1
    }

    return acc
}, {})

console.log(res)
© www.soinside.com 2019 - 2024. All rights reserved.