要按每个对象中的数组的值对对象数组进行排序,您可以使用Array.prototype.sort()方法,并传递一个自定义的比较函数。以下是一个示例解决方案的代码示例:
// 对象数组
const objArray = [
{ name: 'Alice', scores: [90, 85, 95] },
{ name: 'Bob', scores: [80, 75, 85] },
{ name: 'Charlie', scores: [95, 90, 92] }
];
// 按每个对象的数组值进行排序的比较函数
const compareByArrayValue = (a, b) => {
const sumA = a.scores.reduce((acc, curr) => acc + curr, 0);
const sumB = b.scores.reduce((acc, curr) => acc + curr, 0);
return sumA - sumB;
};
// 对对象数组进行排序
objArray.sort(compareByArrayValue);
// 输出排序后的结果
console.log(objArray);
在上述代码中,我们首先定义了一个对象数组objArray
,其中每个对象都有一个scores
属性,它是一个数字数组。
然后,我们定义了一个compareByArrayValue
函数作为比较函数。在这个函数中,我们使用reduce()
方法对每个对象的scores
数组进行求和,并返回两个对象之间的差值。
最后,我们使用sort()
方法对objArray
进行排序,并传递compareByArrayValue
函数作为参数。
运行代码后,将按每个对象中scores
数组的值对对象数组进行排序,并输出排序后的结果。