下面的代码是我必须解决的一个练习的正确、有效的解决方案。我想知道为什么我的解决方案不起作用。
唯一不同的是这一行:
for (var i = contacts.length; i > 0; i--) {
为什么它不做同样的事情只是相反的方向?
for (var i = 0; i < contacts.length; i++) {
if (contacts[i].firstName == name){
if (contacts[i].hasOwnProperty(prop)){
return contacts[i][prop];
} else{
return "No such property";
}
}
}
return "No such contact";
最佳答案
您的代码中存在多个问题。
- 第一个问题是你开始 i = contacts.length 并且你知道在数组长度位置的数组中没有元素
因为数组从 0 到 array.length-1。
该问题的解决方案是 var i = contacts.length - 1。 - 第二个问题是 i 永远不会归零,因为你的停止条件是 i > 0
那么你永远不会到达数组的第一个元素。
解决方案是将停止条件更改为 i >= 0
关于javascript - 两个循环之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64403014/