如何根据数组总和对对象进行排序?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);