Javascript LeetCode二和问题-结果未定义

Javascript 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,

第一个堆栈溢出问题:)

我的代码返回“undefined”作为结果。有人能告诉我为什么吗

问题:给定一个整数nums数组和一个整数目标,返回两个数字的索引,使它们相加到目标

测试用例:输入:nums=[2,7,11,15],target=9
我的输出:未定义
正确输出:[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;indexconsole.log(twoSum(nums,target))
如果元素+el不等于目标,您的
twoSum
return
anything?