javascript - 包含重复项函数不会返回 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]))
解决方案
您在递归函数之前缺少一个 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;
}
};
推荐阅读
- sql - 使用 CHARINDEX 传递给 RIGHT 函数的长度参数无效
- python - 在尊重日期时间的同时计算滚动分组的乘积
- c++ - 回文字符串问题:为什么我必须放 +1 而不是 -1 才能使这段代码工作?
- java - java - 如何按“/”分割并存储为像java中的树一样分层?
- php - 如何在php中放置php
- php - PHP 变量未填充到表单上的 HTML datetime-local 字段中
- bash - 如何让 Bash 脚本引用本地文件
- xslt - 使用节点和属性上的 group by 从 xml 到 xml 的 xslt 转换
- android - LiveData 和 MVVM 模式
- reactjs - 在 Firestore 和 Firebase Auth 中处理用户数据的最佳方式配置为允许每封电子邮件有多个帐户