具有多个返回语句的函数返回什么

What does a function with multiple return statements return?

本文关键字:返回 函数 什么 语句      更新时间:2023-09-26

这是来自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];

我不会编写所有代码,基本上雪佛兰、出租车等都是对象,函数被分配了四个对象之一,并且该值在本练习中被赋予一个变量。我的问题是发生了什么:

    return -1;

那么函数完成时不会返回吗?还是在以下情况下否定

    return i;

发生?还是两个值都返回?有人可以为我可怜的大脑解决这个问题,并告诉我这里的规则是什么。

根据它命中的返回,这将是它返回的唯一内容

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

希望这有帮助。