请写一个 min 函数,要求 min(numbers) 能返回数组 numbers 中的最小数字。
下面以数组[12,5,8,7,9,0,2]为例
let min = (numbers) => {
if (numbers.length > 2) {
return min([numbers[0], min(numbers.slice(1))]);
} else {
return Math.min.apply(null, numbers);
}
};
console.log(min([12, 5, 8, 7, 9, 0, 2]));
请写出一个 sort 函数,要求 sort(numbers) 能返回一个把 numbers 从小到大排列的数组(你可以添加多余的帮助函数)
下面以数组[12,5,8,7,9,0,2]为例
let minIndex = (numbers) => numbers.indexOf(min(numbers))
let min = (numbers) => {
if (numbers.length > 2) {
return min([numbers[0], min(numbers.slice(1))])
} else {
return Math.min.apply(null, numbers)
}
}
let sort = (numbers) => {
if (numbers.length > 2) {
let index = minIndex(numbers)
let min = numbers[index]
numbers.splice(index, 1)
return [min].concat(sort(numbers))
} else {
return numbers[0] < numbers[1] ? numbers : numbers.reverse()
}
}
console.log(sort([12, 5, 8, 7, 9, 0, 2]))