首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何查找数组中包含最高值的对象

如何查找数组中包含最高值的对象
EN

Stack Overflow用户
提问于 2019-01-11 09:55:38
回答 3查看 256关注 0票数 2

我正在使用一个库,它可以预测网络摄像头前用户的情绪。有四种情绪:愤怒、悲伤、惊讶和快乐。我想看看哪种情绪得分最高。当我console.log predictedEmotions时,我看到了以下内容:

代码语言:javascript
复制
(4) [{…}, {…}, {…}, {…}]
 0: {emotion: "angry"value: 0.08495773461377512}
 1: {emotion: "sad", value: 0.05993173506165729}
 2: {emotion: "surprised", value: 0.054032595527500206}
 3: {emotion: "happy", value: 0.18562819815754616}

对如何获得最有价值的情感有什么想法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-01-11 09:59:11

您可以减少数组并接受值最高的对象。然后拿出物体的情感。

代码语言:javascript
复制
var data = [{ emotion: "angry", value: 0.08495773461377512 }, { emotion: "sad", value: 0.05993173506165729 }, { emotion: "surprised", value: 0.054032595527500206 }, { emotion: "happy", value: 0.18562819815754616 }],
    highest = data
        .reduce((a, b) => a.value > b.value ? a : b)
        .emotion;
    
console.log(highest);

票数 5
EN

Stack Overflow用户

发布于 2019-01-11 10:01:07

我会用减缩

代码语言:javascript
复制
const highest = arr.reduce((a, b) => a.value > b.value ? a : b, {});
console.log(highest);
代码语言:javascript
复制
<script>
const arr = [
    {
        emotion: "angry",
        value: 0.08495773461377512
    },
    {
        emotion: "sad",
        value: 0.05993173506165729
    },
    {
        emotion: "surprised",
        value: 0.054032595527500206
    },
    {
        emotion: "happy",
        value: 0.18562819815754616
    }
];
</script>

或者您可以使用排序(但由于性能原因,我更喜欢减少)

代码语言:javascript
复制
arr.sort((a, b) => b.value - a.value);
console.log(arr[0]);
代码语言:javascript
复制
<script>
    const arr = [
        {
            emotion: "angry",
            value: 0.08495773461377512
        },
        {
            emotion: "sad",
            value: 0.05993173506165729
        },
        {
            emotion: "surprised",
            value: 0.054032595527500206
        },
        {
            emotion: "happy",
            value: 0.18562819815754616
        }
    ];
    </script>

票数 2
EN

Stack Overflow用户

发布于 2019-01-11 10:15:42

代码语言:javascript
复制
const data = [
            {emotion: "angry", value: 0.08495773461377512},
            {emotion: "sad", value: 0.05993173506165729},
            {emotion: "surprised", value: 0.054032595527500206},
            {emotion: "happy", value: 0.18562819815754616}
        ],
        highest = process(data);

    function process(data) {
        return data.sort(function (a, b) {
            return b.value - a.value;
        });
    }

    console.log("highest==>",highest,"sorted-array ==>",data[0].emotion);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54144088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档