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

求助:JavaScript函数无法仅输出指定对象值的问题

问题排查与修复

你的代码存在两个关键问题,导致无法得到预期输出:

1. 参数接收错误

函数定义中第二个参数是keys,但调用时你传入了多个独立的字符串参数('lisa', 'bart', 'homer'),此时keys只会拿到第一个参数'lisa',后续参数被忽略。需要用剩余参数语法...keys来接收所有后续传入的键,这样keys会变成包含所有指定键的数组。

2. 循环边界错误

循环条件i <= keys.length会导致循环多执行一次:当i等于keys.length时,keys[i]是undefined,此时访问jsObject[undefined]会输出undefined,同时超出了数组的有效索引范围(数组索引从0开始,最大索引是keys.length - 1)。需要把条件改成i < keys.length。


修复后的代码

let printValuesOf = (jsObject, ...keys) => {
  for (let i = 0; i < keys.length; i++) {
    let key = keys[i];
    console.log(jsObject[key]);
  }
}

let simpsonsCatchphrases = {
  lisa: 'BAAAAAART!',
  bart: 'Eat My Shorts!',
  marge: 'Mmm~mmmmm',
  homer: "d'oh!",
  maggie: "(Pacifier Suck)",
};

printValuesOf(simpsonsCatchphrases, 'lisa', 'bart', 'homer');

输出结果

BAAAAAART!
Eat My Shorts!
d'oh!

另外,函数返回undefined是正常的——JavaScript中没有显式return语句的函数默认返回undefined,这部分不需要修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 02:17:30