计算一个元素在多个其他数组中的出现次数 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%"}
这里,在结果数组中,键来自输入数组,而相应的值是根据三个测试数组中出现的次数生成的。
- "a" 在 3 个测试数组中出现 3 次,所以它给出 100%
- "c" 在 3 个测试数组中出现 2 次并给出 66%
- "d" 出现 1 次并给出 33%
- "b" 和 "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]]))
我需要找到一个数组的所有元素在多个其他数组中的出现。
比如我的输入数组是["a", "b", "c", "d", "e"]
第一个测试数组是["a", "c", "d"]
第二个测试数组是["a"]
第三个测试数组是["a", "c"]
我的结果数组应该是 {"a": "100%", "b": "0%", "c": "66%", "d": "33%", "e": "0%"}
这里,在结果数组中,键来自输入数组,而相应的值是根据三个测试数组中出现的次数生成的。
- "a" 在 3 个测试数组中出现 3 次,所以它给出 100%
- "c" 在 3 个测试数组中出现 2 次并给出 66%
- "d" 出现 1 次并给出 33%
- "b" 和 "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]]))