js实现数列
生成数列的方法
使用循环生成数列
通过循环可以生成简单的数列,例如生成1到10的数列:
let sequence = [];
for (let i = 1; i <= 10; i++) {
sequence.push(i);
}
console.log(sequence); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
使用Array.from生成数列
Array.from方法可以快速生成数列,例如生成0到9的数列:
let sequence = Array.from({length: 10}, (_, i) => i);
console.log(sequence); // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
生成斐波那契数列
斐波那契数列可以通过递归或迭代实现,以下是迭代实现:
function fibonacci(n) {
let fib = [0, 1];
for (let i = 2; i < n; i++) {
fib[i] = fib[i - 1] + fib[i - 2];
}
return fib;
}
console.log(fibonacci(10)); // [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
生成等差数列
等差数列可以通过公式生成,例如生成首项为1,公差为2的数列:
function arithmeticSequence(start, diff, length) {
return Array.from({length}, (_, i) => start + i * diff);
}
console.log(arithmeticSequence(1, 2, 5)); // [1, 3, 5, 7, 9]
生成等比数列
等比数列可以通过公式生成,例如生成首项为1,公比为2的数列:
function geometricSequence(start, ratio, length) {
return Array.from({length}, (_, i) => start * Math.pow(ratio, i));
}
console.log(geometricSequence(1, 2, 5)); // [1, 2, 4, 8, 16]
使用生成器函数生成无限数列
生成器函数可以用于生成无限数列,例如生成自然数数列:
function* naturalNumbers() {
let n = 1;
while (true) {
yield n++;
}
}
const numbers = naturalNumbers();
console.log(numbers.next().value); // 1
console.log(numbers.next().value); // 2
数列操作示例
过滤数列中的偶数
let sequence = [1, 2, 3, 4, 5, 6];
let evenNumbers = sequence.filter(num => num % 2 === 0);
console.log(evenNumbers); // [2, 4, 6]
计算数列的和
let sequence = [1, 2, 3, 4, 5];
let sum = sequence.reduce((a, b) => a + b, 0);
console.log(sum); // 15
映射数列中的元素
let sequence = [1, 2, 3, 4, 5];
let squared = sequence.map(num => num * num);
console.log(squared); // [1, 4, 9, 16, 25]
以上方法涵盖了常见的数列生成和操作需求,可以根据具体场景选择合适的方法。







