這是我的代碼,有人可以解釋為什么我變得未定義嗎?我已經拆分了單詞,然后將它們反轉,反轉后我嘗試將它們存盤在不同的陣列中。謝謝
const text = document.querySelector("#text");
const reverseText = document.querySelector("#reverseText");
let words = text.innerHTML.split("").reverse();
console.log(words);
let reversedWords = [];
let counter = 0;
for (var i = 0; i <= words.length - 1; i ) {
if (words[i] != " ") {
reversedWords[counter] = words[i];
} else {
counter ;
}
}
console.log(reversedWords);
<p id="text">hello nixit</p>
<p id="reverseText"></p>
uj5u.com熱心網友回復:
您的問題是您第一次嘗試訪問reversedWords[counter]時,這是undefined因為您已初始化reversedWords為一個空陣列。
在不更改大部分代碼的情況下(因為您說這樣做是一種挑戰),您可以嘗試初始化reversedWords以獲得適當數量的元素,初始化為空字串
const content = text.textContent;
const words = content.split("").reverse();
const reversedWords = Array.from({ length: content.split(" ").length }, () => "");
uj5u.com熱心網友回復:
您正在使用一個陣列,因此您需要將push其放入其中,然后join在迭代完成后將其放入一個新字串中。
const text = document.querySelector('#text');
const reverseText = document.querySelector('#reverseText');
function reverse(str) {
// `split` the string on the spaces
const words = str.split(' ');
const reversedWords = [];
for (let i = 0; i < words.length; i ) {
// For each word split, reverse, and then rejoin it
const word = words[i].split('').reverse().join('');
// And then add the word to the array
reversedWords.unshift(word);
}
// Return the completed array
return reversedWords;
}
const str = text.textContent;
reverseText.textContent = JSON.stringify(reverse(str));
<p id="text">hello nixit</p>
<p id="reverseText"></p>
附加檔案
unshift
uj5u.com熱心網友回復:
感謝@phil 和@Andy,我是新的學習者,我將學習和閱讀 Array.from() 的所有用法,而不是使用它,但直到我做了這樣的事情。
const text = document.querySelector("#text");
const reverseText = document.querySelector("#reverseText");
let words = text.innerHTML.split("").reverse();
let reversedWords = new Array();
let counter = 0;
let firstChar = 0;
for (var i = 0; i <= words.length - 1; i ) {
if (words[i] != " ") {
if (firstChar === 0) {
reversedWords[counter] = words[i];
firstChar ;
} else {
reversedWords[counter] = words[i];
}
} else {
firstChar = 0;
counter ;
}
}
reversedWords.forEach(word => reverseText.textContent = word " ");
<p id="text">hello nixit
<p>
<p id="reverseText">
<p>
uj5u.com熱心網友回復:
我建議使用字串而不是陣列。然后你可以把它拆分成一個陣列。
const reversedChars = 'hello nixit'.split("").reverse()
const reversedWords = ''
reversedChars.forEach(char => {
reversedWords = char
})
const reversedWordsArray = reversedWords.split(' ')
console.log(reversedWords)
// Output: tixin olleh
console.log(reversedWordsArray)
// Output: [ 'tixin', 'olleh' ]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/425131.html
標籤:javascript 数组 细绳
上一篇:UUIDJava型別到SQLCHAR(40)-無法存盤到陣列中
下一篇:非遞減陣列邏輯失敗
