簡體   English   中英

"如何使用 Array.fill 在 JavaScript 中創建 0...499?"

[英]How to use Array.fill to create 0...499 in JavaScript?

我想使用Array.fill<\/code>方法從 0...499 創建一個序列,例如

const arr = []
for(let i = 0; i < 500; i++)
   arr.push(i);

不,您不能單獨使用填充來完成,因為填充方法添加了靜態值

fill() 方法使用靜態值填充(修改)數組從開始索引(默認為零)到結束索引(默認數組長度)的所有元素。 它返回修改后的數組。

 console.log(new Array(500).fill(0).map((_,i) => i )) console.log(Array.from(Array(500).keys()))

單獨使用fill來完成您的要求是不可能的。 您必須將其與一種或多種其他方法結合使用。

我不能說我推薦這種方法,因為它確實感覺不像慣用的 JavaScript,但只是為了演示目的,這里有一個使用fill來填充結果數組的解決方案(而不是僅僅使用它來解決數組構造函數)。 與替代方案相比,它也更冗長,性能可能更差。

 console.log(Array.from({ length: 500 }).reduce((x, y, i, a) => (a.fill(i, i, i + 1), a), []))

對於它的價值,我發現Array.from({ length: 500 }, (_, i) => i)正如@Terry建議的那樣更優雅。

您可以使用這樣的單行助手:

function createArrayWithNumbersFromRange(start: number, end: number): number[] {
    return [...Array(end - start + 1)].map((_, index) => start + index);
  }

您可以生成一個迭代器並將其推送到一個新數組。

[...Array(5).keys()];
 => [0, 1, 2, 3, 4]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM