使用"在"中检查字符串是否在数组中

时间:2015-04-30 17:17:42

标签: javascript

这不起作用吗?我认为这是有效的,但它不起作用。

var items = ["image", "text"];
console.log(this.type)
if(this.type in items){
    console.log("here")
}

console.log(this.type)显示image,但永远不会显示here

我做错了什么,或者我在想错误的语言?

3 个答案:

答案 0 :(得分:8)

in检查对象的属性名称。

在这里,您需要的是indexOf

if (~items.indexOf(this.type)){

注意:这是

的简短版本
if (items.indexOf(this.type)!==-1){

使用bitwise not operator

答案 1 :(得分:0)

你可以做到

var items = ["image", "text"];
var item = "image";
if (items.indexOf(item) > -1) {
  console.log("here");
}

Array.indexOf() MDN

答案 2 :(得分:0)

" in" JavaScript中的关键字仅适用于对象的键和属性。我会这样做的方式:

if (items.indexOf(this.type) !== -1)

这将返回您要查找的类型的索引,如果不存在,则返回-1。如果它不等于-1,那么它就在那里。