有没有办法解决这个问题,而无需连接这两个数组以获取具有更高值的对象?
javascriptweb developmentobject oriented programming更新于 2025/11/11 4:28:17
要获取具有特定属性的对象,请分别对两个数组使用reduce()的概念。您不需要连接。假设以下是带有学生姓名和学生成绩的对象
var sectionAStudentDetails =
[
{studentName: 'John', studentMarks: 78},
{studentName: 'David', studentMarks: 65},
{studentName: 'Bob', studentMarks: 98}
];
let sectionBStudentDetails =
[
{studentName: 'John', studentMarks: 67},
{studentName: 'David', studentMarks: 89},
{studentName: 'Bob', studentMarks: 97}
];
以下是在两者上实现 reduce() 并获取具有更高值 (分数) 的对象 −
示例
var sectionAStudentDetails =
[
{studentName: 'John', studentMarks: 78},
{studentName: 'David', studentMarks: 65},
{studentName: 'Bob', studentMarks: 98}
];
let sectionBStudentDetails =
[
{studentName: 'John', studentMarks: 67},
{studentName: 'David', studentMarks: 89},
{studentName: 'Bob', studentMarks: 97}
];
function concatTwoArraysWithoutConcatFunction(arrayValues, k) {
const previousValue = arrayValues[k.studentName];
if (!previousValue || k.studentMarks >= previousValue.studentMarks)
arrayValues[k.studentName] = k;
return arrayValues;
}
const setionA =
sectionAStudentDetails.reduce(concatTwoArraysWithoutConcatFunction, {});
const sectionB = sectionBStudentDetails.reduce(concatTwoArraysWithoutConcatFunction, setionA);
console.log(Object.values(sectionB));
要运行上述程序,您需要使用以下命令 −
node fileName.js.
这里,我的文件名是 demo84.js。
输出
这将产生以下输出 −
PS C:\Users\Amit\JavaScript-code> node demo84.js
[
{ studentName: 'John', studentMarks: 78 },
{ studentName: 'David', studentMarks: 89 },
{ studentName: 'Bob', studentMarks: 98 }
]
相关文章
有用资源
javascript 参考教程 - 该教程包含有关 javascript 的更多信息:https://www.cainiaomax.com/javascript/

