这是来自Head First JavaScript Programming一书的练习。
function findCarInLot(car) {
for (var i = 0; i < lot.length; i++) {
if (car === lot[i]) {
return i;
}
}
return -1;
}
var lot = [chevy, taxi, fiat1, fiat2];
我不会写所有的代码,基本上是chevy,taxi等,是对象,并且函数被分配了四个对象中的一个,并且该值在本练习中被赋予变量。我的问题是发生了什么:
return -1;
那么在函数完成时是否会返回?或者在
时否定 return i;
会发生什么?或两个值都返回?有人可以为我那可怜的大脑排除这种情况,并告诉我这里的规则是什么。
答案 0 :(得分:6)
取决于它命中的回报,这将是它返回的唯一回报
function findCarInLot(car) {
for (var i = 0; i < lot.length; i++) {
if (car === lot[i]) {
return i; // If this if statement is true I will return here and this function will end and I will never make it to the next return
}
}
return -1; // This will only get called if the above if statement is false
}
var lot = [chevy, taxi, fiat1, fiat2];
对我来说,这个函数看起来像,如果你调用它,它将遍历汽车数组,如果它在数组中找到所述汽车,它将返回该汽车的索引。
如果在阵列中找不到汽车,它将返回-1
,这意味着汽车没有索引,因此它不在阵列中。
所以,如果我们有
var lot = [chevy, taxi, fiat1, fiat2];
我们正在运行
console.log(findCarInLot("fiat1")); // This will return 2 (Third element of the array)
这是从if语句中的return i
返回的,你永远不会看到return -1
但如果我们这样做
console.log(findCarInLot("lamadamadingdong")); // This will return -1 as it was never found in the array of cars
希望这有帮助。