我正在嘗試使用 Javascript for loop 和 array 來解決這個問題,但中途卡住了。需要一些指導。

到目前為止,我想出的是:
const array1 = ['S','A','I','N','S'];
var text="";
for(let y = 0; y < array1.length; y ){
text = array1[y];
console.log(text);
}
輸出為:
S
SA
SAI
SAIN
SAINS
uj5u.com熱心網友回復:
我會使用一個陣列作為臨時資料存盤。一旦你到達第一個回圈的結尾,pop關閉最后一個臨時元素,這樣你就不會重復“SAINS”,然后向后走回圈,彈出元素,直到陣列為空。
const arr = ['S','A','I','N','S'];
const temp = [];
// `push` a new letter on to the temp array
// log the `joined` array
for (let i = 0; i < arr.length; i ) {
temp.push(arr[i]);
console.log(temp.join(''));
}
// Remove the last element
temp.pop();
// Walk backwards from the end of the temp array
// to the beginning, logging the array, and then
// popping off a new element until the array is empty
for (let i = temp.length - 1; i >= 0; i--) {
console.log(temp.join(''));
temp.pop();
}
uj5u.com熱心網友回復:
您可以按陣列的長度(y < array1.length * 2)回圈遍歷陣列 2 次,因為當您回圈整個陣列時,您必須每次反向回圈以洗掉最后一個字符以獲得結果。您必須檢查我們是否通過y < array1.length記錄整個陣列,然后使用 else 子句,我們可以每次使用洗掉最后一個字符的slice(0, -1)方法洗掉最后一個字符。y < array1.length * 2 - 1 -1用于當您到達最后一個字符并且文本字串中的唯一字符時,文本字串中將沒有任何內容,因此它將記錄空字串,這不是正確的答案。希望我能解釋清楚。
const array1 = ["S", "A", "I", "N", "S"];
var text = "";
for (let y = 0; y < array1.length * 2 - 1; y ) {
if (y < array1.length) {
text = array1[y];
console.log(text);
} else {
text = text.slice(0, -1);
console.log(text);
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/481233.html
標籤:javascript 数组 for循环
下一篇:將二維陣列作為類引數傳遞
