首页 > 解决方案 > 包含重复项函数不会返回 true?

问题描述

为什么“返回真”在这里不起作用?相反,该函数返回未定义...

var containsDuplicate = function(nums) {
    let newArray = nums;
    let p = newArray.pop();
    if (newArray.includes(p)) {
        return true;
    }
    else if (newArray) {
        containsDuplicate(newArray);
    }
    else {
        return false;
    }
};

编辑:

我用这样的东西调用函数:

console.log(containsDuplicate([1,2,3,9,9,0]))

标签: javascriptfunctionooprecursion

解决方案


您在递归函数之前缺少一个 return 语句。

var containsDuplicate = function(nums) {
    let newArray = nums;
    let p = newArray.pop();
    if (newArray.includes(p)) {
        return true;
    }
    else if (newArray) {
        return containsDuplicate(newArray);
    }
    else {
        return false;
    }
};

推荐阅读