如何使用 Array.fill 在 JavaScript 中创建 0...499?
How to use Array.fill to create 0...499 in JavaScript?
我想使用 Array.fill
方法从 0...499 创建一个序列,如
const arr = []
for(let i = 0; i < 500; i++)
arr.push(i);
目前,我正在使用 Array.from
比如:
const arr = Array.from(Array(500).keys())
但是我怎样才能只使用 Array.fill
来创建序列呢?有可能吗?
不,你不能单独使用 fill 来完成,因为 fill 方法添加了一个静态值
The fill() method fills (modifies) all the elements of an array from a
start index (default zero) to an end index (default array length) with
a static value. It returns the modified array.
console.log(new Array(500).fill(0).map((_,i) => i ))
console.log(Array.from(Array(500).keys()))
单独使用 fill
无法完成您的要求。您必须将它与一种或多种其他方法结合使用。
我不能说我 推荐 这种方法,因为它真的不像惯用的 JavaScript,但只是为了演示目的,这里有一个解决方案使用 fill
来填充结果数组(而不是仅仅使用它来绕过 Array 构造函数的尴尬)。它也比替代方案更冗长,性能可能更差。
console.log(Array.from({ length: 500 }).reduce((x, y, i, a) => (a.fill(i, i, i + 1), a), []))
就其价值而言,我发现 Array.from({ length: 500 }, (_, i) => i)
正如 所建议的那样更加优雅。
您可以生成迭代器并将其推送到新数组。
[...Array(5).keys()];
=> [0, 1, 2, 3, 4]
您可以像这样使用 one-line 助手:
function createArrayWithNumbersFromRange(start: number, end: number): number[] {
return [...Array(end - start + 1)].map((_, index) => start + index);
}
我想使用 Array.fill
方法从 0...499 创建一个序列,如
const arr = []
for(let i = 0; i < 500; i++)
arr.push(i);
目前,我正在使用 Array.from
比如:
const arr = Array.from(Array(500).keys())
但是我怎样才能只使用 Array.fill
来创建序列呢?有可能吗?
不,你不能单独使用 fill 来完成,因为 fill 方法添加了一个静态值
The fill() method fills (modifies) all the elements of an array from a start index (default zero) to an end index (default array length) with a static value. It returns the modified array.
console.log(new Array(500).fill(0).map((_,i) => i ))
console.log(Array.from(Array(500).keys()))
单独使用 fill
无法完成您的要求。您必须将它与一种或多种其他方法结合使用。
我不能说我 推荐 这种方法,因为它真的不像惯用的 JavaScript,但只是为了演示目的,这里有一个解决方案使用 fill
来填充结果数组(而不是仅仅使用它来绕过 Array 构造函数的尴尬)。它也比替代方案更冗长,性能可能更差。
console.log(Array.from({ length: 500 }).reduce((x, y, i, a) => (a.fill(i, i, i + 1), a), []))
就其价值而言,我发现 Array.from({ length: 500 }, (_, i) => i)
正如
您可以生成迭代器并将其推送到新数组。
[...Array(5).keys()];
=> [0, 1, 2, 3, 4]
您可以像这样使用 one-line 助手:
function createArrayWithNumbersFromRange(start: number, end: number): number[] {
return [...Array(end - start + 1)].map((_, index) => start + index);
}