微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

键是数组的对象数组需要计算数组中的每个键值

如何解决键是数组的对象数组需要计算数组中的每个键值

我正在尝试使用以下看起来像这样的数据找出顶部的身体位置... 数据是一个对象数组,可以是 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 举报,一经查实,本站将立刻删除。