Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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_Arrays_Object - Fatal编程技术网

Javascript。向对象中添加数组

Javascript。向对象中添加数组,javascript,arrays,object,Javascript,Arrays,Object,我毫无问题地解决了挑战16。我还找到了挑战17的答案,但我不明白为什么我只能用方括号将属性添加到这样的对象中:loopNumbers[nestedArr[I][0]=nestedArr[I][1] 因此,我的问题是: 为什么我不能像这样使用点符号?:loopNumbers.nestedArr[I][0]=nestedArr[I][1] 如果我使用点表示法,那么第120行会显示类型错误:无法读取未定义的属性“0” 为什么我不需要在代码行后面加分号loopNumbers[nestedArr[I][0

我毫无问题地解决了挑战16。我还找到了挑战17的答案,但我不明白为什么我只能用方括号将属性添加到这样的对象中:
loopNumbers[nestedArr[I][0]=nestedArr[I][1]

因此,我的问题是:

  • 为什么我不能像这样使用点符号?:
    loopNumbers.nestedArr[I][0]=nestedArr[I][1]

    如果我使用点表示法,那么第120行会显示
    类型错误:无法读取未定义的属性“0”
  • 为什么我不需要在代码行后面加分号
    loopNumbers[nestedArr[I][0]]=nestedArr[I][1]
  • 以下是挑战


    挑战16

    您将获得一个名为
    nestedArr
    的空数组。使用for循环,将5个子数组添加到
    nestedArr
    ,每个嵌套数组包含字符串“loop”,并将
    nestedArr
    中的相应索引连接为第一个元素,将索引作为第二个元素。子阵列示例-
    ['loop3',3]


    分号在javascript中是可选的,但建议始终添加分号,以避免在某些情况下出现歧义(请参阅)

    对于添加属性,如果参数是静态的,则可以使用点,例如:

    loopnumbers.myproperty = 3
    
    但是,由于nestedArr[i][0]不是静态的,因此需要将括号括起来。

    编辑:当更多的是“访问”或“考虑”时,我多次使用“获取”。所以是的,我说的是“得到这个东西”,我的意思不一定是阅读它的价值,而是“我们正在做一些事情”。就这样吧,好吗

    js
    中,数组被访问为“在
    array
    索引中获取条目”:

    对象作为“从
    对象
    获取名为
    属性
    的属性”访问:

    您试图做的是“从
    数组的
    索引
    命名的
    对象
    中获取属性”。这是你能做的。但你实际做的是要求一些不同的东西

    loopNumbers.nestedArr[i][0]
    表示“从对象
    loopNumbers
    和索引
    i
    处的get条目以及索引
    0
    处的get条目获取属性
    nestedArr

    要获取由nestedArr的
    i
    th条目的
    0
    th条目命名的
    loopNumbers
    属性,必须首先获取nestedArr的
    i
    th条目

    nestedArr[i]
    
    然后您需要输入0

    nestedArr[i][0]
    

    现在,这不是一个您可以直接使用的属性,因为正如前面所说的
    loopNumbers。Nestedar
    尝试从对象
    loopNumbers
    获取名为
    nestedArr
    的属性,该对象不存在。获取由
    nestedArr[i][0]中存储的值命名的属性的唯一方法
    来自名为
    loopNumbers
    的对象,其方括号如下

    loopNumbers[nestedArr[i][0]]
    

    分号换行符在javascript中是可选的,因为自动插入分号时需要注意,如果不使用,某些代码序列将中断。最佳做法是始终使用它们
    loopNumbers。nestedArr
    表示“在
    loopnumberr
    上访问名为
    nestedArr
    的属性”“.那不是你想要的,所以你不应该这么做。考虑与数学运算符类似的问题。代码>1+2*3
    不同于
    (1+2)*3
    。谢谢法泽加!我如何知道参数是静态的,而不是JavaScript??我知道在Java中,我使用了像
    static int num=3所谓“静态”我指的是不被解释的东西,也就是说一个词。你不能做loopnumber.variable=something。
    
    object.property
    object["property"]
    
    nestedArr[i]
    
    nestedArr[i][0]
    
    loopNumbers[nestedArr[i][0]]