js实现数列
实现数列的基本方法
在JavaScript中生成数列可以通过多种方式实现,常见的方法包括使用循环、数组方法或生成器函数。以下是几种典型实现方式:
使用for循环生成等差数列
通过for循环可以生成指定范围和步长的数列:
function generateSequence(start, end, step = 1) {
const result = [];
for (let i = start; i <= end; i += step) {
result.push(i);
}
return result;
}
// 生成1到10的数列
console.log(generateSequence(1, 10)); // [1,2,3,4,5,6,7,8,9,10]
使用Array.from生成数列
ES6的Array.from方法可以更简洁地创建数列:

// 生成0到9的数列
const sequence = Array.from({length: 10}, (_, i) => i);
console.log(sequence); // [0,1,2,3,4,5,6,7,8,9]
生成斐波那契数列
实现经典的斐波那契数列:
function fibonacci(n) {
const 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]
使用生成器函数实现无限数列
通过生成器函数可以创建无限序列:

function* numberSequence(start = 0, step = 1) {
while (true) {
yield start;
start += step;
}
}
const gen = numberSequence(10, 2);
console.log(gen.next().value); // 10
console.log(gen.next().value); // 12
生成随机数列
创建包含随机数的数列:
function randomSequence(length, min = 0, max = 100) {
return Array.from({length}, () =>
Math.floor(Math.random() * (max - min + 1)) + min
);
}
console.log(randomSequence(5)); // 例如:[42,17,83,56,29]
处理大数列的惰性求值
对于大数据集可以使用惰性计算:
function* lazySequence(start, end, transform = x => x) {
for (let i = start; i <= end; i++) {
yield transform(i);
}
}
const squares = [...lazySequence(1, 5, x => x * x)];
console.log(squares); // [1,4,9,16,25]
这些方法覆盖了从简单数列到复杂数列的各种生成场景,可以根据具体需求选择合适的方式。






