如何解决键是数组的对象数组需要计算数组中的每个键值
我正在尝试使用以下看起来像这样的数据找出顶部的身体位置... 数据是一个对象数组,可以是 n 个对象 在对象中,有一个名为 bodyLocations 的键。 bodyLocations 是一个数组,我需要计算 r-ovary、l-ovary 等,并找出所有对象中出现最多的 3 个。
目前,我的思路是将所有的身体位置数组联系在一起然后计数? 我觉得有一种更简单的方法可以做到这一点。 我应该把更重的工作放在这个数据来自的 mongodb 上还是在我目前正在尝试的服务器上完成? 关于如何解决这个问题的任何想法?
create or replace PROCEDURE Show_R(A IN VARCHAR2,B OUT VARCHAR2)
IS
BEGIN
select func_w(day),TO_CHAR(hour,'HH24:MI')INTO B
from task t
inner join mat m
on t.id_p = m.id_a
where m.cod_mod = A;
END;
let bigArr = [];
symptomDataWeek.forEach(el => {
el.bodyLocations.push(bigArr)
console.log(el.bodyLocations)
})
console.log(bigArr)
解决方法
这不是在 bigArr
中收集数据:
el.bodyLocations.push(bigArr)
相反,它推送对每个对象的 bigArr
属性的(空)bodyLocations
引用。
但是如果您对出现的频率感兴趣,那么请执行以下操作:
const freq = {};
for (let {bodyLocations} of symptomDataWeek) {
for (let location of bodyLocations) freq[location] = (freq[location] || 0) + 1;
}
然后得到频率最高的位置:
const maxFreq = Math.max(...Object.values(freq));
const location = Object.keys(freq).find(location => freq[location] === maxFreq);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。