Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 这个递归函数有什么问题?_Javascript_Function_Recursion - Fatal编程技术网

Javascript 这个递归函数有什么问题?

Javascript 这个递归函数有什么问题?,javascript,function,recursion,Javascript,Function,Recursion,我试图计算对象中的字符串数量,包括使用递归的嵌套对象和数组中的字符串。为什么我得到的是3分而不是7分 函数strCount(对象,计数=0){ for(obj中的var键){ 如果(对象的类型[键]=“对象”){ strCount(对象[键],计数); }else if(对象的类型[键]='string'){ 计数++; } } 返回计数; } var myobj={ 第一条:“1”, 第二:“2”, 5:‘sd’, 第三:错, 第四:[“随时”,2,3,4], 第五:空, 第六:未定义, 第

我试图计算对象中的字符串数量,包括使用递归的嵌套对象和数组中的字符串。为什么我得到的是3分而不是7分

函数strCount(对象,计数=0){
for(obj中的var键){
如果(对象的类型[键]=“对象”){
strCount(对象[键],计数);
}else if(对象的类型[键]='string'){
计数++;
}
}
返回计数;
}
var myobj={
第一条:“1”,
第二:“2”,
5:‘sd’,
第三:错,
第四:[“随时”,2,3,4],
第五:空,
第六:未定义,
第七名:{ana:'hell',did:5,boo:'foo',har:['kill',5]}
};

警报(strCount(myobj))
不要忘记将递归调用的结果添加到
计数中

功能strCount(obj){
var计数=0;
for(obj中的var键){
如果(对象的类型[键]=“对象”){
计数+=strCount(对象[键]);
}else if(对象的类型[键]='string'){
计数++;
}
}
返回计数;
}
var myobj={第一:“1”,第二:“2”,5:'sd',第三:false,第四:[“随时”,2,3,4],第五:null,第六:未定义,第七:{ana:'hell',did:5,boo:'foo',har:['kill',5]};

警报(strCount(myobj))
不要忘记将递归调用的结果添加到
计数中

功能strCount(obj){
var计数=0;
for(obj中的var键){
如果(对象的类型[键]=“对象”){
计数+=strCount(对象[键]);
}else if(对象的类型[键]='string'){
计数++;
}
}
返回计数;
}
var myobj={第一:“1”,第二:“2”,5:'sd',第三:false,第四:[“随时”,2,3,4],第五:null,第六:未定义,第七:{ana:'hell',did:5,boo:'foo',har:['kill',5]};

警报(strCount(myobj))您应该将第四行更改为
count=strCount(obj[key],count)

函数strCount(对象,计数=0){
for(obj中的var键){
如果(对象的类型[键]=“对象”){
计数=strCount(对象[键],计数);
}else if(对象的类型[键]='string'){
计数++;
}
}
返回计数;
}
var myobj={
第一条:“1”,
第二:“2”,
5:‘sd’,
第三:错,
第四:[“随时”,2,3,4],
第五:空,
第六:未定义,
第七:{
安娜:“见鬼”,
日期:5,
嘘:“福”,
哈尔:[“杀死”,5]
}
};

警报(strCount(myobj))您应该将第四行更改为
count=strCount(obj[key],count)

函数strCount(对象,计数=0){
for(obj中的var键){
如果(对象的类型[键]=“对象”){
计数=strCount(对象[键],计数);
}else if(对象的类型[键]='string'){
计数++;
}
}
返回计数;
}
var myobj={
第一条:“1”,
第二:“2”,
5:‘sd’,
第三:错,
第四:[“随时”,2,3,4],
第五:空,
第六:未定义,
第七:{
安娜:“见鬼”,
日期:5,
嘘:“福”,
哈尔:[“杀死”,5]
}
};

警报(strCount(myobj))
您正在递归调用
strCount
,但忽略其返回值。如果您这样想,它不会增加调用方范围内的
count
变量。每个调用都有自己的
count
。您递归调用
strCount
,但忽略其返回值。如果您这样想,它不会增加调用方范围内的
count
变量。每个调用都有自己的
计数