![](/img/trans.png)
[英]Trying to populate a SELECT menu with Javascript/jQuery, but script doesn't work
[英]Javascript padStart to populate an array doesn't work
我想以 Markdown 格式填充具有不同標題的數組。 這是我嘗試過的:
slides = Array(50).fill().map((e,i)=> "Slide ".padStart(i % 6, '#') + (i+1));
但是所有數組元素的開頭都沒有標簽。 調試器還顯示它對字符串沒有任何影響:
"Slide ".padStart(6, "#") = "Slide "
我從上面期望:
"Slide ".padStart(6, "#") = "######Slide "
您需要移動字符串前面的填充。
var slides = Array.from( { length: 50 }, (_, i) => ''.padStart(i % 6 + 1, '#') + "Slide " + (i + 1) ); console.log(slides);
padStart
到總長度。 如果您想重復一個字符串並將其添加到開頭,您可以使用repeat
來做到這一點:
slides = Array(50).fill().map((e,i)=> "#".repeat(i % 6) + "Slide " + (i+1));
您的演示代碼無法獲得此結果,因為
Slide
沒有填充#
的空間了;
"Slide ".padStart(6, "#")
// "######Slide " ❌
只需將其更改為以下代碼,它將按您的意願工作。
// solution ✅ "Slide ".padStart("Slide ".length + 6, "#"); // '######Slide ' const str = "Slide "; const result = str.padStart(str.length + 6, "#"); console.log('result =', result); const name = "Slide "; const slides = Array(50).fill().map((_, i) => name.padStart(i % 6 + name.length + 1, '#') + (i + 1)); console.log('slides =', slides); /* const name = "Slide "; const slides = [...``.padEnd(50, ' ')].map((_, i) => name.padStart(i % 6 + name.length + 1, '#') + (i + 1)); console.log('slides =', slides); */
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.