簡體   English   中英

Codecademy JavaScript Push()練習

[英]Codecademy JavaScript Push() Exercise

CodeAcademy的目標尚不明確。 http://bit.ly/167N8bX我想我應該通過一個長字符串,並將我的名字中的字符從字符串中推入一個數組。

以下是它的說明:

“它將檢查你姓名的第一個字母的文字,然后將等於你名字長度的字符數推送(添加)到一個數組。通過檢查數組,你將能夠看到你的名字是否被提及! “

*更新。 現在我看到了教師的輸出,它實際上並沒有檢查你的名字是否被提及。 困擾新手的指示,像我一樣。

我在7的第5步:鏈接: http//bit.ly/167N8bX

var text = "Lorem ipsum dolor nayr sit amet, consectetur adipisicing elit, sed do eiusmod tempor yan ut Ryan labore et dolore magna aliqua. Ut enim ad ry minim veniam, quis nostrud ryan exercitation ullamco ryan laboris nisi ut aliquip ex ea ry commodo rya consequat. END";
var myName = "Ryan";
var hits = [];

for(var i = 0; i < text.length; i++) {
    // Loop thru "text" string
    // check each char one-by-one
    // if it finds uppercase "R"
    if(text[i] == "r".toUpperCase()){

    // push the next 3 chars into hits[] array...
    // by looping on myName.length
    // end push() when myName.length loops ends
       for(var j = 0; j < myName.length; j++){
           hits.push(text[i]);
           console.log(hits);
       }
    }
}

* UPDATED如何保持每個循環的輸出,並將每個推送存儲在數組中,直到它完成所有循環?

我上面代碼輸出不正確:

[ 'R' ]
[ 'R', 'y' ]
[ 'R', 'y', 'a' ]
[ 'R', 'y', 'a', 'n' ]

我認為問題在於,在你的內循環中,你每次只會推送同一個字母。 您需要將其修改為以下內容:

hit.push(text[i + j])

這應該解決問題。 祝你好運,繼續編碼!

剛看到代碼學院的練習。 您的代碼沒有任何問題,除非您將text[i]而不是text[i+j]推送到hits數組中。

實際上代碼學院希望你能根據他們的提示編寫代碼。

在他們的提示中,你將能夠看到Your loop should stop when it hits the value of the first iterator (say, i) plus the length of your myName variable.

你的代碼

var text = "Lorem ipsum dolor nayr sit amet, consectetur adipisicing elit, sed do eiusmod tempor yan ut Ryan labore et dolore magna aliqua. Ut enim ad ry minim veniam, quis nostrud ryan exercitation ullamco ryan laboris nisi ut aliquip ex ea ry commodo rya consequat. END";
var myName = "Ryan";
var hits = []; // empty array to 'push()' my name into
for(var i = 0; i < text.length; i++ ){
    if(text[i] == myName[0]){ 
        for(var j = 0; j < myName.length; j++){ 
            hits.push(text[j+i]);
        }
    }        
}

如果您使用以下代碼替換代碼,他們會說好的

var text = "Lorem ipsum dolor nayr sit amet, consectetur adipisicing elit, sed do eiusmod tempor yan ut Ryan labore et dolore magna aliqua. Ut enim ad ry minim veniam, quis nostrud ryan exercitation ullamco ryan laboris nisi ut aliquip ex ea ry commodo rya consequat. END";
var myName = "Ryan";
var hits = []; // empty array to 'push()' my name into
for(var i = 0; i < text.length; i++ ){
    if(text[i] == myName[0]){ 
        for(var j = -1; j < myName.length+1; j++){ 
            hits.push(text[j+i+1]);
        }
    }        
}

我現在明白了。 教師的代碼並沒有真正檢查我的名字的字符串(“Ryan”)。 他的代碼不使用MyName數組的第一個字母。 他手動輸入“E”(“Eric”是他的例子)。 他的代碼發現手動輸入“E”,然后在“E”之后推送接下來的3個字符(他們不必使用myName.length將“ric”匹配到hits []數組中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM