如何根据数组总和对对象进行排序?React.js

所以我有 data.js 存储我的 JSON ......它看起来像这样:

[
    {
        name: 'Adam Doe',
        city: 'New York',
        mark: [8,10,10,10]
    },
    {
        name: 'Catlyn Stronk',
        city: 'Las Vegas',
        mark: [2,2,2,2,2,3,3,3,4]
    },
    {
        name: 'Anna Doe',
        
        city: 'Michigan',
        mark: [10,8,8,4,3,2]
    }
]

如何制作一个数组并将得分最高的人放在首位?因此,由于 Adam Doe 将获得 9.5 分的最高分,因此他应该排在第一位,依此类推......我在 React.js 工作

回答

您可以创建一个avg函数,然后sort根据该平均值创建数组。

const people = [
    {
        name: 'Adam Doe',
        city: 'New York',
        mark: [8,10,10,10]
    },
    {
        name: 'Catlyn Stronk',
        city: 'Las Vegas',
        mark: [2,2,2,2,2,3,3,3,4]
    },
    {
        name: 'Anna Doe',
        
        city: 'Michigan',
        mark: [10,8,8,4,3,2]
    }
]

const avg = (arr) => arr.reduce((acc, el) => acc + el, 0) / arr.length;

people.sort((a, b) => avg(b.mark) - avg(a.mark));

console.log(people);


以上是如何根据数组总和对对象进行排序?React.js的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>