Javascript 检查数组是否包含值?(我尝试了一些技巧,但还是有点迷路)
我是JavaScript的初学者(学习大约一周的初学者),我一直在研究如何检查数组是否包含某个字符串。我做了一个猜字游戏 我声明Javascript 检查数组是否包含值?(我尝试了一些技巧,但还是有点迷路),javascript,arrays,Javascript,Arrays,我是JavaScript的初学者(学习大约一周的初学者),我一直在研究如何检查数组是否包含某个字符串。我做了一个猜字游戏 我声明函数包含如下内容: function contains(thing, array){ if(thing in array){ return true; } else { return false; } }; 我不确定我做错了什么,但值总是假的 该函数使用第三种技术。但我也尝试过使用公认的技术,两者的结果都是一样的 非常感谢您的帮助 使用
函数
包含如下内容:
function contains(thing, array){
if(thing in array){
return true;
}
else {
return false;
}
};
我不确定我做错了什么,但值总是假的
该函数使用第三种技术。但我也尝试过使用公认的技术,两者的结果都是一样的
非常感谢您的帮助 使用该方法。操作员检查是否存在键,而不是值。
您也可以在循环中使用for..来迭代对象的所有键:
for (key in object)
console.log(object[key])
对于数组,它将给出与
for (index=0; index<array.length; index++)
console.log(array[i])
for(index=0;index必须单独回答以确保这一点清楚。查看数组中是否有内容的正确方法:
var myArr = ['apples', 'bananas', 'pears'];
if (myArr.indexOf('pears') > -1) { // myArr.indexOf('pears') will equal the number 2
console.log('we got pears'); // this will log
}
if (myArr.indexOf('hotdogs') > -1) { // since it's not in the array, it's -1
console.log('hotdog!'); // this will not log
}
最后请注意,for…in
循环实际上不应该用于迭代数组——它确实存在于迭代对象中的键。对于在JS中迭代数组,经典的for
循环是正确的方法。使用数组方法。请粘贴您的代码(非工作部件的最小复制)这样我们就不需要访问另一个站点,并且如果该链接失效,您的问题也会有意义。for in
用于常规属性枚举,它可以包括数组,但通常避免用于此目的。in
操作符用于检查属性的存在。我无法判断您正在使用哪个属性在你的答案中引用。OP的两个链接引用了.indexOf()
,因此需要更具体的帮助。@Syntac——正确地说需要使用indexOf——但是,请注意,
循环中的for…实际上不应该用于迭代数组——它确实存在于迭代对象中的键。对于在JS中迭代数组,经典的for
循环是正确的方法。for-in
与
的不同。这两者之间存在着重要的区别。然而,OP实际上是在执行if(数组中的东西){
,这是关于属性检查,而不是迭代。