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

如何在ES6中使用map函数实现修改指定学校名称的功能

使用ES6 Map函数实现学校名称修改函数

嘿,这事儿不难,用ES6的map()完全能搞定,而且还能保持代码的简洁和函数式风格~

首先明确核心思路:map()方法的作用就是遍历数组并返回一个新数组,每个元素可以根据我们的逻辑做转换。我们要做的就是在遍历每个学校对象时,判断它的名称是否匹配oldName,如果匹配就返回一个新的对象(避免修改原数据),把name换成新值;不匹配的话直接返回原对象就行。

下面是完整的实现代码:

let schools = [ 
  {name: 'YorkTown', country: 'Spain'}, 
  {name: 'Stanford', country: 'USA'}, 
  {name: 'Gymnasium Achern', country: 'Germany'} 
];

function editSchoolName(schools, oldName, newName) {
  return schools.map(school => {
    // 匹配到目标学校时,创建新对象替换name属性
    if (school.name === oldName) {
      return {...school, name: newName};
    }
    // 未匹配到则直接返回原对象
    return school;
  });
}

几个关键点说明:

  • 为什么用{...school, name: newName}?这里用了ES6的对象扩展运算符,它会把原school对象的所有属性复制到新对象里,然后覆盖name属性为新值。这样做的好处是不会修改原数组里的原始对象,保持了数据的不可变性,这是现代JS开发的最佳实践之一。
  • map()返回的是一个全新的数组,原schools数组不会被改动,如果你需要更新后的数组,直接接收函数的返回值就行。

调用示例:

// 修改YorkTown的名称为York Town High
const updatedSchools = editSchoolName(schools, 'YorkTown', 'York Town High');

console.log(updatedSchools);
// 输出结果:
// [
//   {name: 'York Town High', country: 'Spain'},
//   {name: 'Stanford', country: 'USA'},
//   {name: 'Gymnasium Achern', country: 'Germany'}
// ]

// 原数组不受影响
console.log(schools);
// 输出还是最初的数组内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:12:05