我传递给函数的变量在该函数中怎么可能是未定义的
How can a variable I pass into a function be undefined in that function?
函数"子集"告诉我"最大"是未定义的。
发生了什么事?
function ArrayAdditionI(arr)
{
arr.sort();
var largest = arr.pop()
console.log(largest);
subset([], arr, largest);
}
function subset(soFar, rest, largest)
{
var sum = 0;
if (rest.length === 0)
{
for(var i=0; i<soFar.length; i++)
{
sum+= soFar[i];
}
console.log("sum = "+ sum + " " + largest);
if (sum === largest) return true;
}
else
{
var soFar2 = soFar.slice(0);
soFar2.push(rest[0]);
subset(soFar,rest.slice(1));
subset(soFar2, rest.slice(1));
}
}
ArrayAdditionI([85,3,88,2])
subset(soFar,rest.slice(1));
在这里,您只传递了2个参数,但函数需要3个。在Javascript中,这不是一个错误,其余参数的值为undefined
。你可能希望这些线路是:
subset(soFar,rest.slice(1), largest);
subset(soFar2, rest.slice(1), largest);
在递归函数调用中没有传入第三个参数largest
。
对末尾子集的递归调用不会传递第三个参数,因此它被赋予默认值undefined
相关文章:
- 同一项怎么可能在一个实例中未定义,却在另一个实例上定义
- (false==false==true)怎么可能是真的
- 不在443上运行https怎么可能呢
- 这个Javascript变量怎么可能有价值
- Extjs 4.2.1隐藏字段-inputEl.dom怎么可能未定义
- 为javascript函数提供可能包含特殊字符的字符串参数
- 桌面 HTML + CSS + JS 应用程序?这怎么可能
- “功能”就是功能,这怎么可能
- 开放层:怎么可能.功能覆盖在 3.13v 中替换
- 如何通过使用 js 函数或可能是 angularjs 在新窗口中查找行的内容来直接滚动到表行
- JS:字符串真的是基元类型吗?如果是这样,这怎么可能
- 尝试通过php include放置png图像..这怎么可能
- 我怎么可能完成这种Javascript突出显示技术
- 我传递给函数的变量在该函数中怎么可能是未定义的
- 在JavaScript中:如果Object是一个函数,那么如果一个函数是一个对象的实例,它怎么可能呢
- Javascript:一个带键的数组怎么可能呢
- 函数正在重写变量.这怎么可能
- 怎么可能object==这个,但是object.member!=this.member在Javascript中
- 一个有内容的iFrame怎么可能有一个未定义的contentDocument对象
- Javascript,这个函数怎么可能返回一个空数组