繁体   English   中英

使用“ in”运算符对带有javascript的二维数组

[英]using the “in” operator for two dimensional array with javascript

因此,我将以下数组定义如下:

        var a = new Array();
            a[1] = new Array();

            a[1][0] = "Computer Science";
            a[1][1] = "Computer Engineering";
            a[1][2] = "Aerospace Engineering";
            a[1][3] = "Engineering (Other)";
            a[1][4] = "Web Development";
            a[1][5] = "Computer Programming";
            a[1][6] = "Android Development";
                    //a[2] through a[n] defined similarly

有一次,我试图测试字符串是否包含在[i]中的任何地方,例如“计算机科学”,所以我执行以下操作:

                 for(j=1; j<n; j++)
                    if("Computer Science" in a[j])
                    {
                              //DO SOMETHING
                    }

但是,此总是返回false,但是我已经验证a [j]实际上包含字符串(在a [j] [0]中)。 知道为什么会这样吗?

in运算符用于测试对象上是否存在属性(名称) 例如, "5" in a[j]中的"5" in a[j]为真-数组的索引为5

您要使用indexOf方法检查数组中是否存在元素:

if (a[j].indexOf("Computer Science") > -1)
    //DO SOMETHING

这有效:

var a = [];
a[0] = [];
a[1] = [];

a[1][0] = "Computer Science";
a[1][1] = "Computer Engineering";
a[1][2] = "Aerospace Engineering";
a[1][3] = "Engineering (Other)";
a[1][4] = "Web Development";
a[1][5] = "Computer Programming";
a[1][6] = "Android Development";

for(j=0; j<a.length; j++) {
    if("Computer Science" in oc(a[j])) {
       alert("test");               
    }
}

function oc(a)
{
  var o = {};
  for(var i=0;i<a.length;i++)
  {
    o[a[i]]='';
  }
  return o;
}

http://jsfiddle.net/SRPEU/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM