Javascript LeetCode二和问题-结果未定义
第一个堆栈溢出问题:) 我的代码返回“undefined”作为结果。有人能告诉我为什么吗 问题:给定一个整数nums数组和一个整数目标,返回两个数字的索引,使它们相加到目标 测试用例:输入:nums=[2,7,11,15],target=9Javascript LeetCode二和问题-结果未定义,javascript,arrays,foreach,Javascript,Arrays,Foreach,第一个堆栈溢出问题:) 我的代码返回“undefined”作为结果。有人能告诉我为什么吗 问题:给定一个整数nums数组和一个整数目标,返回两个数字的索引,使它们相加到目标 测试用例:输入:nums=[2,7,11,15],target=9 我的输出:未定义 正确输出:[0,1] /** * @param {number[]} nums * @param {number} target * @return {number[]} */ var twoSum = function(nums,
我的输出:未定义
正确输出:[0,1]
/**
* @param {number[]} nums
* @param {number} target
* @return {number[]}
*/
var twoSum = function(nums, target) {
// iterate through each element
nums.forEach((element, index) => {
// iterate through the rest of the array
nums.forEach((el, i) => {
// makes sure it isnt adding the same index
if(index != i) {
if(element+el == target){
return [index, i];
}
}
})
})
};
问题是
forEach
回调方法中的return
语句表示回调方法的返回值,而不是实际的twoSum
函数
var twoSum=函数(nums,目标){
设res=[];
//遍历每个元素
nums.forEach((元素,索引)=>{
//遍历数组的其余部分
数值(el,i)=>{
//确保它没有添加相同的索引
如果(索引!=i){
如果(元素+el==目标){
res=[指数,i];
}
}
})
})
返回res;
};
常量nums=[2,7,11,15]
常数目标=9
log(twoSum(nums,target))
如果使用此解决方案,则可以获得所有结果
var twoSum=函数(nums,目标){
设res=[];
//遍历每个元素
for(让index=0;index console.log(twoSum(nums,target))
如果元素+el不等于目标,您的twoSum
不return
anything?