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

如何使用Array.prototype.map()根据数组数据生成新字符串?

问题修正方案

你的代码返回[undefined,undefined,undefined,undefined,undefined]的核心原因是**map的回调函数没有返回值**:当箭头函数使用大括号{}包裹代码块时,必须显式通过return语句返回结果,否则默认返回undefined。另外还存在一处文本拼写错误:else分支的字符串缺少空格,应该是" is under age!!"而非"is underage!!"。

修正后的代码(显式return版本)

function makeStrings(arr){
  const map1 = arr.map((person) => {
    if(person.age > 18){
      return person.name + " can go to The Matrix";
    }
    else {
      return person.name + " is under age!!";
    }
  });
  return map1;
}

更简洁的写法(隐式返回+模板字符串)

利用箭头函数的隐式返回特性(去掉大括号),结合三元表达式和模板字符串优化代码:

function makeStrings(arr){
  return arr.map(person => 
    person.age > 18 
      ? `${person.name} can go to The Matrix` 
      : `${person.name} is under age!!`
  );
}

运行修正后的代码,就能得到预期输出:

["Angelina Jolie can go to The Matrix", 
"Eric Jones is under age!!", 
"Paris Hilton is under age!!", 
"Kayne West is under age!!", 
"Bob Ziroll can go to The Matrix"]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 11:42:35