这是CodeAcademy javascript课程。我有点坚持这个,不知道如何继续。
我需要能够搜索名称" Alex"在"文本"变量。然后我需要第二个For循环将字母推入"命中"阵列。
/*jshint multistr:true */
var text = "My name is Alex. What is yours? Again, my name is Alex";
var myName = "Alex";
var hits = [];
for(var i = 0; i < text.length; i++ ){
if(i === text["A"]){
for(var j = i; i + myName.length; i++){
hits.push("Alex");}
}
}
答案 0 :(得分:0)
您正在一次一个字母地迭代整个text
字符串。 i
数字if(i === text["A"]){
不应与"A"
匹配。 text["A"]
未获得text
字符串的索引。使用text[i] === "A"
。第二个循环i + myName.length
没有条件;替换j < i + myName.length
。如果您只匹配“A”,如果您没有break
外for
循环,您也会在“再次”匹配“A”。
请注意,目前,我们不会检查"A"
的第一个匹配项后跟"lex"
后跟空格" "
字符。
您也可以使用.split()
或.match()
获取text
中所有字词的数组,迭代字词,检查myName
的匹配。
var text = "My name is Alex. What is yours? Again, my name is Alex";
var myName = "Alex";
var hits = [];
outer: for (var i = 0; i < text.length; i++) {
if (text[i] === "A") {
for (var j = i; j < i + myName.length; j++) {
hits.push(text[j]);
}
break outer;
}
}
console.log(hits);