2011-12-07 172 views
0

我有一个简单的递归函数返回undefined而不是所需的字符串。任何人都可以告诉我我错过了什么吗?未定义函数返回

var someString = 'item1|item2|item3|item4'; 
     console.log(testData(someString, '|', 2)); 

     function testData(data, token, count) { 
      console.log(data); 
      if(count == 0) { 
       return data; 
      } else { 
       testData(data.substring(data.indexOf(token) + 1), token, count - 1); 
      } 
     } 

回答

1

你忘了return语句进行else条款:

else { 
    return testData(data.substring(data.indexOf(token) + 1), token, count - 1); 
} 
+0

按照说明操作。 – stavarotti

0

你永远只能return如果count0

您可能想在testData()之前插入return