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

JavaScript新手求助:updateRecords函数无法更新联系人号码

问题排查与解决方案

嘿,我来帮你搞定这个updateRecords函数的问题~

你遇到的核心问题是:你把contacts数组当成单个对象来直接访问了!contacts是一个包含多个联系人对象的数组,contacts["firstName"]这种写法根本找不到对应的联系人元素,自然没法完成号码更新。你的lookUpProfile函数其实已经用对了思路——遍历数组查找匹配项,updateRecords需要照搬这个逻辑。

修正后的updateRecords函数

function updateRecords(name, num) {
    // 遍历contacts数组,逐个检查每个联系人对象
    for (var i = 0; i < contacts.length; i++) {
        // 找到firstName和传入name匹配的联系人
        if (contacts[i].firstName === name) {
            // 确认该联系人的号码是"unknown"
            if (contacts[i].number === "unknown") {
                // 更新号码属性
                contacts[i].number = num;
            }
            // 找到目标后跳出循环,不用继续遍历了
            break;
        }
    }
    return contacts;
};

关键修正点说明

  • 用for循环遍历contacts数组,和你的lookUpProfile逻辑一致,这样才能定位到具体的联系人对象
  • 通过contacts[i]访问数组中的第i个联系人对象,再去判断它的firstName和number属性
  • 找到匹配的联系人后加入break语句,避免不必要的循环,提升效率

现在你再运行console.log(updateRecords("Kristian", "123456709")),就能看到Kristian的号码已经成功更新为"123456709"啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 08:59:05