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
相关产品推荐
相关产品推荐

