You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js中如何根据课程名称获取对象中的对应courseCode

根据课程名称获取对应课程代码的解决方案

先把你的学生数据定义好:

const temp = {
    "title": "Student Details",
    "education": "under graduate",
    "courses": [
        {
            "courseCode": "101",
            "course": "Physics"
        },
        {
            "courseCode": "102",
            "course": "Chemistry"
        },
        {
            "course": "Math",
            "courseCode": "103"
        }
    ],
    "studentId": "xyz202267"
};

方法一:直接用find()匹配单条数据

这是最直接的方式,遍历课程数组找到第一个匹配名称的对象,再提取对应的courseCode:

function getCourseCode(courseName) {
  const matchedCourse = temp.courses.find(course => course.course === courseName);
  // 找到就返回代码,没找到返回null(也可以换成你需要的默认值)
  return matchedCourse ? matchedCourse.courseCode : null;
}

// 调用示例
console.log(getCourseCode('Math')); // 输出 '103'
console.log(getCourseCode('Physics')); // 输出 '101'

find()会在找到第一个匹配项后停止遍历,适合课程名称唯一的场景。如果有重复课程名,只会返回第一个匹配的结果。

方法二:构建映射对象提升多次查询效率

如果需要频繁根据课程名查代码,先把课程数组转成键值对映射,后续查询直接取值,效率更高:

// 提前构建课程名 -> 课程代码的映射
const courseCodeMap = temp.courses.reduce((map, course) => {
  map[course.course] = course.courseCode;
  return map;
}, {});

// 直接通过键查询
console.log(courseCodeMap['Math']); // 输出 '103'
console.log(courseCodeMap['Chemistry']); // 输出 '102'

这种方式只需要遍历一次数组构建映射,之后每次查询都是O(1)的时间开销,适合多次查询的场景。

内容的提问来源于stack exchange,提问作者Renee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 02:15:36