javascript - 具有多个 return 语句的函数返回什么?

标签 javascript return return-value

这是 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

希望这对您有所帮助。

关于javascript - 具有多个 return 语句的函数返回什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35691972/

相关文章:

javascript - 为什么我使用setTimeout时方法立即执行?

c - 为什么我不必每次都返回 "average",然后再继续运行循环?

c++ - 赋值运算符在 return 语句中意味着什么,比如 return t =...?

JAVA:返回值对 ArrayIndexOutOfBoundsException 异常意味着什么?

java - 在冒泡排序中按升序或降序排序

javascript - 如何从 Chrome 扩展程序访问所有窗口对象?

javascript - 我的 javascript 中的字符串如果包含 ' 就会被 chop

javascript - 如何显示动态添加的元素

java - 从 Java 的 processbuilder 执行的 ffmpeg 在 Windows 7 下不返回

javascript - Jquery Click函数-获取被点击标签的值