js,代码执行时报错undefined: 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图

/**

  • @param {number[]} nums
  • @return {number[][]}
  • /
    //用map方法来判断是否存在这样的三位数,a,b,c;
    //第一层a=-(b+c),a是target值
    //第二层b,c用map是遍历成除了a以外的其他数值
    var threeSum = function(nums) {
    _length=nums.length;
    const map=new Map();
    for(let i=0;i<_length;i++){
    //使得a为target值
    a=nums[i];
    //数组中删除i号元素,长度跟着减1,防止重复
    nums.splice(i,0);
    _length=_length-1;
    //i+1表示从下一位开始,防止重复
    for(let j=0;j<_length;j++)
    {
    c=nums[j];
    b=-a-c;
    //判断是否存在某位元素,等于-a-nums中j号元素
    if(map.has(b)){
     return[a,b,c]
    
    }
    }
    }
    }
    console.log (threeSum([-1,0,1,2,-1,-4]))
    运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

第一次使用a,b,c这三个变量时并没声明。比如a=nums[i]; 在for语句之前加入 let a = 0; let b = 0; let c = 0; 然后语句里只有if里边有返回,若找不到匹配的三个数就没有返回。把这两点改一下再试试。