我正在尝试在Codecademy学习JavaScript。我正在研究关于for循环的this problem,我无法弄清楚我的代码有什么问题。它说“条件表达式中的赋值”,但我不知道这意味着什么。它说错误发生在第二个for
语句中。
我的目标是将hits
的值更改为text
变量字符串中包含的名称。
这是我的代码:
var text ="Max Gee Max Gee Max Gee";
var myName = "Max";
var hits=[];
for(var i=0;i<text.length;i++){
if(text[i]==="M"){
for(var j = i;j = myName.length;){
hits.push("Max");
}
}
}
答案 0 :(得分:2)
将其更改为for (var j = i; j === myName.length; ) {
你正在使用一个你应该使用条件/布尔值的赋值。
答案 1 :(得分:2)
=
是赋值,但在条件语句中,您需要检查是否相等(==
),检查某些内容是否更大(>
),检查某些内容是否更少({{{ 1}})等。您要为变量<
分配j
的长度,而不是检查此行的某些条件:
myName
相反,你可能需要做这样的事情:
for(var j = i;j = myName.length;){
但是,这可能不一定是您的Codecademy Assignment的解决方案,但它将解决您的特定JavaScript错误。和for(var j = i;j <= myName.length;){
,<
,>
和其他提及here的条件一起阅读并阅读,以试图找出有效的方法。
修改:如果您想要解决整个问题,那么在问题中发布问题的链接会有所帮助,而不仅仅是提到您遇到的具体错误,而是解释整个问题。话虽这么说,你错过了一些事情:
==
循环中增加j
,就像富兰克林在评论中提到的那样。您需要for
。j++
循环到达字符串+ for
中的当前点时,它应该停止。”这意味着您需要停在myName.length
而不是text.length + myName.length
。这也意味着您应该使用myName.length
而非<
,如上所述。将所有这些放在一起,解决方案就是把这一行:
<=
取代这一行:
for(var j = i;j < (text.length + myName.length); j++){
答案 2 :(得分:0)
试试这个
for(var j = i; j < (myName.length + i); j++) {
hits.push(text[j]);
}
答案 3 :(得分:-1)
我也在苦苦挣扎,最后我明白了,codecademy在说什么:“..它在字符串+ myName.length中的当前点” 只需要添加myName.length。
var text = "Aoday I woke up beside the loveliest girl on planet Earth";
var myName = "Aleksei";
var hits = [];
for(i=0; i < text.length; i++){
if(text[0] === myName[0]){
for(var j = i; j <= myName.length; j++){
hits.push(text[j] + myName.length);
}
}
}
顺便说一下,text和myName的内容应该从同一个字母开始。希望我是对的,希望它有所帮助!