請幫忙!
該函式應將字母“A”到“F”列印到控制臺,每秒一個字母。
該函式在沒有 setInterval/setTimeout 的情況下作業。
// setInterval(alphabet, 1000, 'a', 'f');
function alphabet(from, to) {
var a = [], i = from.charCodeAt(0), j = to.charCodeAt(0);
for (; i <= j; i) {
setInterval(() => {
a.push(String.fromCharCode(i));
}, 1000);
}
// return console.log(a);
return a;
}
console.log(alphabet('a', 'f'));
uj5u.com熱心網友回復:
你可能想試試這個。你可以把它粘貼到codepen上
var a = [];
function alphabet(from, to) {
console.log(a);
setInterval(() => {
var i = from.charCodeAt(0);
var j = to.charCodeAt(0);
for (; i <= j; i) {
if(a.includes(String.fromCharCode(i))){
}else{
console.log(String.fromCharCode(i))
a.push(String.fromCharCode(i));
break;
}
}
}, 1000);
return a;
}
alphabet('a', 'f');
uj5u.com熱心網友回復:
這是使用async 睡眠功能的解決方案。
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function alphabet(from,to){
var currentLetter = from[0];
while(currentLetter.charCodeAt(currentLetter[0]) != to.charCodeAt(to[0]) 1){
let l = currentLetter
await sleep(1000)
console.log(l)
nextLetter = String.fromCharCode(currentLetter.charCodeAt(currentLetter[0]) 1)
currentLetter = nextLetter;
}
}
alphabet('A','F');
uj5u.com熱心網友回復:
function printLetters(start, finish) {
//should add checks here to validate start comes before finish
console.log(start)
if (start == finish) {
return
}
else {
setTimeout(printLetters, 1000, String.fromCharCode(start.charCodeAt(0) 1), finish)
}
}
printLetters('a', 'f')
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/486464.html
標籤:javascript
