Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 动态访问定义的函数或变量属性_Javascript_Performance - Fatal编程技术网

Javascript 动态访问定义的函数或变量属性

Javascript 动态访问定义的函数或变量属性,javascript,performance,Javascript,Performance,我花了一些时间阅读有关访问对象属性的内容,但找不到解决问题的方法 假设我有10个数组,分别是arr1,arr2,arr3。。。啊。如果不使用eval(),如何访问所有数组的长度?我用一个for循环和eval(“arr”+I+“.length”)完成了它。我知道arr1[“length”]有效,但如何访问所有数组的长度?使用循环 如何访问函数,如split(),splice()或pop()。。。所有这些阵列中 假设arr1=[“tab1”,“tab2”],其中tab1,tab2稍后定义为数组。如果

我花了一些时间阅读有关访问对象属性的内容,但找不到解决问题的方法

  • 假设我有10个数组,分别是arr1,arr2,arr3。。。啊。如果不使用
    eval()
    ,如何访问所有数组的长度?我用一个
    for
    循环和
    eval(“arr”+I+“.length”)
    完成了它。我知道
    arr1[“length”]
    有效,但如何访问所有数组的长度?使用循环
  • 如何访问函数,如
    split()
    splice()
    pop()
    。。。所有这些阵列中
  • 假设
    arr1=[“tab1”,“tab2”]
    ,其中
    tab1,tab2
    稍后定义为数组。如果我想从
    arr1
    访问
    tab1
    的长度,我应该怎么做?如果我还想访问数组上定义的函数

  • 您应该将所有这些数组移动到父
    对象
    数组

    此外,您不应避免
    eval
    。提及

    var arr1=[1,2];
    var arr2=[1,2,3,4];
    var arr3=[1,2,3];
    var arr4=[1,2,6,4,3,6];
    var arr5=[1];
    var obj={
    阵列1:arr1,
    array2:arr2,
    阵列3:arr3,
    阵列4:arr4,
    阵列5:arr5
    }
    Object.keys(obj.forEach)(函数(o){
    document.write(obj[o].length+“
    ”); }); 假设我有10个数组,分别是arr1,arr2,arr3。。。啊。怎么 我是否可以不使用eval()访问所有数组的长度? 我使用for循环和eval(“arr”+I+“.length”)来完成。我知道 arr1[“length”]有效,但如何访问所有数组的长度? 使用循环

    如果这些数组在函数中定义为

    var arr1 = [];
    var arr2 = [];
    
    那么你就不能通过名字访问它们了

    您需要在对象内定义数组。比如说

    var obj = {
      "arr1" : [1,2],
      "arr2" : [2,3]
    }
    
    如果知道数组名称,则可以通过执行以下操作来访问该数组

    console.log(obj.arr1);
    

    但是,如果这些数组是在全局上下文中定义的(在任何函数之外),则可以通过窗口对象访问它们

    window["arr1"]
    
    让我们假设arr1=[“tab1”,“tab2”],其中tab1,tab2在后面定义 作为数组。如果我希望从arr1访问tab1的长度,应该如何访问 我愿意?如果我还想访问数组上定义的函数

    如果tab1定义为“var tab1=[];”那么你就不能通过名字来访问这个

    您需要再次将这些数组包装到对象中

    var obj = {"tab1" : []};
    
    然后您可以通过执行以下操作来访问它

    console.log(obj[arr1[0]]);
    

    如果您事先不知道阵列的数量,那么阵列阵列也可以正常工作:

    var数组=[[1,2]、[1,2,3,4]、[1,2,3]、[1,2,6,4,3,6]、[1];
    对于(var i=0;i');
    
    }
    请添加一些示例,看看您想要实现什么?只需将数组放入包装对象中,并通过括号表示法访问它们:
    obj['arr'+i]。length
    console.log(obj[arr1[0]]);