0
Я был около часа, пытаясь понять, почему я получаю неопределенный от этой функции, функция работает хорошо, она останавливается, когда условие триггеров и значение randomAlphabet
верны, глупая ошибка, но это заставляет меня чувствовать себя очень раздражающим. Вот код:получение undefined от рекурсивной функции в javascript
(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' не возвращаются? – Andy
'return getRandomAlphabet (алфавит, randomAlphabet)' – Paleo
Функция 'getRandomIndex' должна находиться рядом с' getAlphabet'. Его не нужно переопределять на каждой итерации. – Paleo