代码之家  ›  专栏  ›  技术社区  ›  Kevin Carmody

javascript:按名称查找数组

  •  2
  • Kevin Carmody  · 技术社区  · 15 年前

    我有一些JS数组,我想按名称查找这些数组。例如:

    arr1 = [1,2,3];
    arr2 = [3,4,5];
    

    像这样访问它们:

    var intNum = 2;
    var arrName = 'arr' + intNum;
    
    arrName[0]; // equals 3
    

    这有可能吗?

    谢谢, 凯文

    2 回复  |  直到 9 年前
        1
  •  3
  •   Itay Moav -Malimovka    15 年前
    window['arr'+intNum]
    

    所以

    arr1 = [1,2,3];
    arr2 = [3,4,5];
    intNum=2;
    alert(window['arr'+intNum][1]); //will alert 4
    
        2
  •  5
  •   Sean Kinsey    9 年前

    这是可能的,但我建议您将这些数组作为一个对象的属性来放置,这样做容易得多。

    var arrays {
        arr1 : [1,2,3],
        arr2 : [4,5,6]
    }
    
    var arrNum = 2;
    var arr = arrays["arr" + arrNum] // arrays.arr2
    

    可以使用 . 运算符和命名项 ["propname"] 表示法。

    使用 eval 或者诉诸于使用上述技巧 window 不建议。

    eval'ing通常是构造错误的代码的标志,使用window依赖window作为全局范围的变量对象——这不是任何规范的一部分,不一定在浏览器之间工作。