Debugger没有进入"如果循环"。调试器甚至进入for循环,它检查长度,它也增加i。
function doesStevenLikeSpagetti (favoriteFoods) {
debugger;
for (var i=0; i<favoriteFoods.length; i++ ) {
if( favoriteFoods[i] === "spaghetti") {
return true;
}
}
return false;
}
doesStevenLikeSpagetti("spaghetti");
答案 0 :(得分:0)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<form id="frm1">
<select name="district">
<option value="" disabled="" selected="" hidden="">Area ...</option>
<option value="NWFP">NWFP</option>
<option value="FATA">FATA</option>
</select>
</form>
因为循环正在迭代变量var favoriteFoods = "spaghetti";
for( var i=0; i<favoriteFoods.length; i++ ){
console.log(favoriteFoods[i]);
if( favoriteFoods[i] === "spaghetti")
console.log("found: ", i)
}
中单词的字母本身,所以不会找到任何内容。
favoriteFoods
答案 1 :(得分:0)
您正在将参数 favoriteFoods 的每个字符与整个单词(字符串)&#34; spaghetti&#34;进行比较。
你应该像这样调用你的函数,传递一个数组并与作为参数传递的数组的每个元素进行比较。
doesStevenLikeSpagetti(["spaghetti"])
答案 2 :(得分:0)
您的错误是您尝试循环字符串,因此第一次迭代时favoriteFoods[i]
将为s
。
我想你有一个你的角色喜欢的东西清单,并想检查他是否喜欢什么。您可以使用indexOf
(或includes)
执行此操作,根本没有理由进行循环。
let stevenLikes = ["spaghetti", "pizza", "bacon"];
function doesStevenLike(food) {
return stevenLikes.indexOf(food) > -1;
// or ES6 includes
// return stevenLikes.includes(food);
}
console.log(doesStevenLike("spaghetti"));
console.log(doesStevenLike("chicken feed"));
console.log(doesStevenLike("bacon"));
&#13;