计算一个元素在多个其他数组中的出现次数 JavaScript

Count the occurrence of one element in multiple other arrays JavaScript

我需要找到一个数组的所有元素在多个其他数组中的出现。

比如我的输入数组是["a", "b", "c", "d", "e"]

第一个测试数组是["a", "c", "d"]

第二个测试数组是["a"]

第三个测试数组是["a", "c"]

我的结果数组应该是 {"a": "100%", "b": "0%", "c": "66%", "d": "33%", "e": "0%"}

这里,在结果数组中,键来自输入数组,而相应的值是根据三个测试数组中出现的次数生成的。

我试图找到解决方案,但找不到任何解决方案。谁能帮帮我?

感谢您的宝贵时间。

您可以使用嵌套 forEach 循环

function occurances(arr, arrays){
  const object = Object.fromEntries(arr.map(x => [x, 0]));
  arrays.forEach(arr => {
    arr.forEach(x => object[x]++)
  })
  
  return Object.fromEntries(Object.entries(object).map(([k, v]) => [k, v/arrays.length * 100]))
}

console.log(occurances([1,2,3,4,5], [[1,2], [2, 3], [1, 2]]))