检查对象项中的数组是否包含子字符串

时间:2014-11-09 12:13:27

标签: javascript arrays

我知道我可以遍历一个数组并检查其中一个项目是否等于一个项目,如下所示:

var myObject = {
    myArray : ["someString", "anotherString"]
}

for (var obj in myObject){

    if (myObject[obj].indexOf("someString") > -1) {
    //In the array!
    } else {
    //Not in the array
    }

}

但是如何检查是否有任何数组项目包含传递给indexOf-method的项目。

我的意思是:如果此部分如下所示:if (myObject[obj].indexOf("some") > -1)。我仍然希望它捕获"someString"中的myArray并使if语句返回true

1 个答案:

答案 0 :(得分:1)

您已经遍历对象以获取每个数组。现在,您需要遍历数组以检查每个元素中是否存在字符串。下面的代码段将允许您检查myObject中的每个条目,以查看该值是否在每个数组中。



var myObject = {
  myArray: ["someString", "anotherString"],
  anotherArray: ["fooString", "anotherString"]
}

for (var obj in myObject) {
  var exists = false;
  var theArray = myObject[obj];
  for (var i = 0; i < theArray.length; i++) {
    if (theArray[i].indexOf("some") > -1) {
      exists = true;
    }
  }
  
  if(exists) {
    alert(obj + ' yes');
  } else {
    alert(obj + ' no');
  }
}
&#13;
&#13;
&#13;