【问题标题】:concat two variable and find array value position using javascript连接两个变量并使用javascript查找数组值位置
【发布时间】:2018-04-29 18:36:47
【问题描述】:

我在下面有这样的数组对象

var TTP01[2,0,0,0,0,0,4,6,1,4,0,9,1]

如果我像这样分配TTP01[0],我将得到输出2。这工作正常。

但是我单独获取值,我需要分配对象。

object = TTP;
count  =01;
xy = x*y;

我在下面这样连接

var obj = objname.concat(count, "[", xy, "]");
console.log( obj );

在控制台日志中,我得到了这样的TTP01[0]

但是想得到输出2

请帮助我...谢谢

【问题讨论】:

    标签: javascript arrays concat


    【解决方案1】:

    这会起作用。

    eval(objname + count)[xy]
    

    完整代码:

    var TTP01 = [2,0,0,0,0,0,4,6,1,4,0,9,1];
    
    var objname = "TTP";
    var count = "01";
    var xy = 0;
    
    console.log(eval(objname + count)[xy]); // 2

    【讨论】:

    • Uncaught ReferenceError: TTP012 is not defined
    • 我添加了一个完整的代码。它适用于我的环境(节点和浏览器)。
    • 它显示 Uncaught TypeError: Cannot read property '0' of undefined
    • 我把我的完整代码改成了可运行代码sn-p,请检查一下。
    • var count = "01";我得到这个 01 变量。但现在我得到了 1。我怎样才能使,01,02,03...
    【解决方案2】:

    你可以这样试试,

    var TTP01 = [2,0,0,0,0,0,4,6,1,4,0,9,1];
    var objname = 'TTP';
    var count  = '01';
    xy = 0;
    
    var obj = window[objname + count];
    console.log( obj[xy] );

    【讨论】:

      【解决方案3】:

      将 TTP01 分配给某个基础对象:

       var base = {
         TTP01: [2,0,0,0,0,0,4,6,1,4,0,9,1]
       }
      
      
      var objname = 'TTP';
      var count  = '01';
      var objStr = objname + count;
      var xy = 0;
      
      console.log(base[objStr][xy])
      

      【讨论】:

        猜你喜欢
        • 2018-01-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-06
        • 1970-01-01
        • 2017-06-26
        • 1970-01-01
        • 2022-01-12
        相关资源
        最近更新 更多