未定义函数的结果,而不是对象

时间:2018-10-30 07:42:35

标签: javascript

当我调用下面的函数 maxSubArraySum 时,它不会随我期望的对象 arrSlice 返回。相反,当我在chrome开发人员工具中运行代码时,结果却未定义。

function maxSubArraySum(array, count) {
  var slicePoint1;
  var slicePoint2 = count;
  var arrSlice = {};
  var pH;

  for (var i = 0; i < array.length; i++) {
      slicePoint1 = i;
      pH = array.slice(slicePoint1, slicePoint2);
      if(pH.length<count){
      	return;
      }
      arrSlice[i] = pH;
      slicePoint2 += 1;
     
  }//End of loop

  console.log(arrSlice);
  return arrSlice;
}

maxSubArraySum([1, 2, 3, 4, 5, 6, 7, 8, 9], 4);

1 个答案:

答案 0 :(得分:0)

您需要检查这种情况

if(pH.length<count){
        return;
      }

空的return语句返回未定义的值,我在下面粘贴了调试代码,请详细说明您的问题,以便我进行纠正

function maxSubArraySum(array, count) {
  var slicePoint1;
  var slicePoint2 = count;
  var arrSlice = {};
  var pH;
console.log(arguments);
  for (var i = 0; i < array.length; i++) {
    slicePoint1 = i;
      pH = array.slice(slicePoint1, slicePoint2);
      if(pH.length<count){
        console.log("dsf");return;
      }
      arrSlice[i] = pH;
      slicePoint2 += 1;

  }//End of loop

  console.log("sdf",arrSlice);
  return arrSlice;
}

maxSubArraySum([1, 2, 3, 4, 5, 6, 7, 8, 9], 4);