我试图学习一些Javascript。我已经写了这个代码,它应该返回a,b,c,d,如果字母a在var字母中,它应该警告消息"是的,它是真的"。
当我运行代码时,它不会给我任何回报。
谁能明白为什么?
<script type="text/javascript">
var letters = ["a", "b", "c", "d"]
var numbers = ["one", "two", "three", "four"]
for(x=0; x < letters.length; x++) {
document.write(letters);
if(a in letters) {
document.write("Yes it is true");
}
}
</script>
答案 0 :(得分:2)
而不是a in letters
,您应该使用letters.indexOf('a') > -1
。有什么区别?
首先,a
本身就是一个变量。您尚未定义此变量。其次,in
不会搜索值,只搜索键。这个数组的键是0,1,2,3。另一方面,indexOf
会搜索值。
此外,您不需要for
循环。
答案 1 :(得分:1)
a 是您尚未定义的变量,请勿与&#34; a&#34; (字符串)混淆
字母是数组。 x 是您要迭代的数组中的索引。 letters [x] 是索引为x的特定元素。
所以,你可以做&#34; a&#34; ==字母[x] 进行比较以修复代码。
作为旁注,我可以提出一个更好的方法来解决你的问题。
您正试图通过遍历整个列表并比较元素来解决。没关系,如果你想学习像迭代这样的概念,但是在这种情况下,使用字符串对象indexOf中的inbuild方法可以更轻松地完成这项工作。
<script type="text/javascript">
var letters = ["a", "b", "c", "d"]
var numbers = ["one", "two", "three", "four"]
if(letters.indexOf("a") >= 0) {
document.write("Yes it is true");
}
</script>
indexOf返回作为参数传递的元素数组中的索引,如果它不在数组中,则返回-1。因此,如果此数字大于或等于零,则表示该元素存在于数组中。
答案 2 :(得分:0)
请查看此代码,a是letters
数组
<script type="text/javascript">
var letters = ["a", "b", "c", "d"]
var numbers = ["one", "two", "three", "four"]
for(x=0; x < letters.length; x++) {
document.write(letters);
if(letters[x]=='a') {
document.write("Yes it is true");
}
}
</script>
答案 3 :(得分:0)
您尚未定义名称为a的任何变量。你应该使用'a'来检查你所在的地区
答案 4 :(得分:0)
您可以按索引
访问每个元素
if(letters[index]=='a') {
document.write("Yes it is true");
}
答案 5 :(得分:0)
您可以使用letters.indexOf(a)代替for循环,它将返回变量的索引&#39; a&#39;在数组内部&#39;字母&#39; (如果没有找到-1)。但在此之前,您需要定义变量&#39; a&#39;。
如果你真的想保留for循环,你应该像这样使用它:
var a="a";
for(x=0; x < letters.length; x++) {
document.write(letters);
if(letters[x]==a) {
document.write("Yes it is true");
}
答案 6 :(得分:-2)
答案:
for(x=0; x < letters.length; x++) {
document.write(letters + "<br/>");
if(a = letters) {
document.write("Yes it is true" + "<br/>");
}
}
打印结果: A B C D 是的,它是真实的 A B C D 是的,它是真实的 A B C D 是的,它是真实的 A B C D 是的,这是真的