从javascript中的递归函数获取undefined
getting undefined from recursive function in javascript
我花了大约一个小时的时间试图弄清楚为什么我从这个函数中得到了未定义,这个函数运行得很好,当条件触发并且randomAlphabet
的值正确时,它就会停止,这确实是一个愚蠢的错误,但它让我感到非常讨厌。这是代码:
(function() {
var getAlphabet = function() {
var alphabet = [];
for ( var asciiCode = 97; asciiCode < 123; asciiCode++ ) {
alphabet.push(String.fromCharCode(asciiCode));
}
return alphabet;
};
var getRandomAlphabet = function(alphabet, randomAlphabet) {
var alphabet = alphabet || getAlphabet();
var alphabetLength = alphabet.length;
var randomAlphabet = randomAlphabet || [];
if ( alphabetLength === 0 ) {
return randomAlphabet;
};
var getRandomIndex = function(min, max) {
return Math.floor(Math.random() * (max - min) + min);
};
// remove the random item from the original alphabet
var randomIndex = getRandomIndex(0, alphabetLength);
var randomItem = alphabet.splice(randomIndex, 1)[0];
// add the random item to the random alphabet
randomAlphabet = randomAlphabet.concat(randomItem);
getRandomAlphabet(alphabet, randomAlphabet);
};
// this returns undefined
console.log(getRandomAlphabet());
})();
只需要返回getRandomAlphabet
方法
(function() {
var getAlphabet = function() {
var alphabet = [];
for ( var asciiCode = 97; asciiCode < 123; asciiCode++ ) {
alphabet.push(String.fromCharCode(asciiCode));
}
return alphabet;
};
var getRandomAlphabet = function(alphabet, randomAlphabet) {
var alphabet = alphabet || getAlphabet();
var alphabetLength = alphabet.length;
var randomAlphabet = randomAlphabet || [];
if ( alphabetLength === 0 ) {
return randomAlphabet;
};
var getRandomIndex = function(min, max) {
return Math.floor(Math.random() * (max - min) + min);
};
// remove the random item from the original alphabet
var randomIndex = getRandomIndex(0, alphabetLength);
var randomItem = alphabet.splice(randomIndex, 1)[0];
// add the random item to the random alphabet
randomAlphabet = randomAlphabet.concat(randomItem);
return getRandomAlphabet(alphabet, randomAlphabet);
};
// this returns undefined
console.log(getRandomAlphabet());
})();
相关文章:
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- jquery试图按名称获取按钮位置
- 如何在jQuery中获取元素的形式
- 如何在php文件中获取$.post-ajax传递的值
- 在Shopify中获取博客文章的图片
- 使用Javascript获取所选选项ID
- jQuery可以't获取data-*属性值,返回undefined
- 尝试使用.ninnerHTMLlog打印数据,获取错误Uncaught TypeError:undefined不是函数
- 从javascript中的递归函数获取undefined
- 如何在Internet Explorer中获取javascript堆栈跟踪.e.stack 返回 “Undefined”
- 获取&;TypeError: undefined不是一个函数&;用函数式编程
- 获取错误"不能调用方法'替换'undefined"
- 获取'undefined'在控制器中使用我的工厂时出现错误
- 获取未捕获的TypeError: undefined在JSFiddle中不是一个函数
- 无法用Angular从HTML视图获取值到控制器.解决方案返回$scope变量undefined
- 循环遍历JSON对象's条目并遍历react state,获取'state undefined'
- 获取TypeError: undefined不是handsontable.validateCells()上的函数
- 在IE9中浏览时,在javascript中的Datakey值上获取undefined
- php返回的隐藏字段设置正确,但是'undefined'当使用jquery获取值时
- JavaScript在尝试获取数据属性时返回NULL/Undefined