我正在使用一个简单的算法,使用递归返回最小的数字。一切似乎都是正确的并且可以正常工作,只是当我在最后返回数字数组时,它以未定义的形式返回。
function findSmallestInt(numbers) {
var updatedArr = [];
if (numbers[0] < numbers[1]) {
numbers.splice(1, 1);
if (numbers.length > 1) {
findSmallestInt(numbers);
} else {
return numbers;
}
} else {
numbers.splice(0, 1);
if (numbers.length > 1) {
findSmallestInt(numbers);
} else {
return numbers;
}
}
}
console.log(findSmallestInt([78, 56, 232, 12, 18]));
答案 0 :(得分:3)
您可以使用Math.min():
console.log([Math.min(...[78, 56, 232, 12, 18])]);
对于递归函数,如先前@CertainPerformance在注释中所指出的,您应该return
findSmallestInt(number)
函数结果:
function findSmallestInt(numbers) {
numbers.splice(numbers[0] < numbers[1] ? 1 : 0, 1);
return numbers.length > 1 ? findSmallestInt(numbers) : numbers;
}
console.log(findSmallestInt([78, 56, 232, 12, 18]));