2017-09-03 62 views
-5

如何接收這種格式的字符串:「1-10」並創建一個數字量的數組在範圍中。使用for循環將數組打印到屏幕上。以這種格式接收一個字符串:「1-10」並創建一個數字量在範圍內的數組

即 - 「1-5」,以便接收他們陣列將是:{1,2,3,4,5}

創建工作流與vCenter協調器。

+1

歡迎SO。請訪問[幫助],看看有什麼和如何問。提示:在[mcve] – mplungjan

+0

中投入工作量和代碼是否是功課? – zynkn

+0

@avner FYI,按照慣例,我們使用方括號(例如'[1,2,3,4,5]')註釋數組,爲對象和散列保留大括號。 – mjk

回答

0

var input = "1-10"; //SAMPE INPUT DATA. 
 
var foo = input.split("-"); //PASRING INPUT DATA. 
 
var answer = []; 
 
for(var i = foo[0]; i<= foo[1]; i++){ 
 
    answer.push(parseInt(i)); //MAKE AN ARRAY. 
 
} 
 
console.log(answer);

+1

代碼轉儲不是*有用*答案,說*你做了什麼,以及*爲什麼*。給OP提供一條魚而不是教他釣魚是沒有用的。 –

+0

@ T.J.Crowder我很抱歉。其實,我不是很好的老師,而且我不擅長英語。如果我解釋如何制定一些算法,我可能不得不花費我所有的時間。我只是想幫助別人。 – zynkn

+0

它的工作,謝謝! –

2

可以split串入array,然後在迭代循環來獲得迭代。

let str = "1-5"; 
 
str = str.split('-'); 
 
for(let i = parseInt(str[0]); i<=parseInt(str[1]); i++) { 
 
    console.log(i); 
 
}

+1

如果您先解析結束數字,而不是每次檢查邊界時,循環會更有效率。 – mjk

+0

是的,應該給提問的人留下一些東西。但是,首先這樣做會更有效率。 –

1

你可以使用一些很酷的ES6:

Array.range = function(s){ 
const [start,end] = s.split("-"); 
return Array.from({length:start-end}).map((_,i)=>i+ +start); 
}; 

可用這樣的:

Array.range("1-10") //[1,2,3...] 
相關問題