当我调用下面的函数 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);
答案 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);