【问题标题】:Array declaration & assignment (JavaScript)数组声明和赋值 (JavaScript)
【发布时间】:2014-05-22 02:13:36
【问题描述】:

变量声明和赋值可以在一行内完成,但似乎不能用数组做,为什么?

var variable1 = 5;  // Works

var array1[0] = 5;  // Doesn't work

var array2 = [];    // Works
array2[0] = 5;

【问题讨论】:

  • 它不起作用,因为当你声明array1[0]时,它试图设置array1的第零个元素,它不存在
  • 您是否将array1 声明为数组? var array1 = [];

标签: javascript arrays variable-assignment variable-declaration


【解决方案1】:

array initialiser 的格式为:

var a = [5];

当你这样做时:

var array1[0]

然后解释器看到var 并期望它后面跟着一个标识符。但是,由于“[”和“]”字符,array1[0] 不是有效标识符。如果是,您将拥有一个名为 array1[0] 的变量,其值为 5

【讨论】:

    【解决方案2】:

    var array1 = [5]; 将 array1 初始化为具有单个元素 5 的数组字面量。

    注意array1不是一个常量数组,元素可以被推送、读取、改变等。

    上面一行的效果和

    一样
    var array1 = [];
    array1[0] = 5;
    

    【讨论】:

      【解决方案3】:

      你差点就吃完了:

      var array2 = [5];
      

      【讨论】:

        【解决方案4】:

        推入数组时不能使用 var,因为它解释为“array1[0]” - 使用不允许的字符,但您还需要先设置数组

        var array1 = [];
        array1[0] = 5;  // Yes it does
        
        console.log(array1);
        

        【讨论】:

          【解决方案5】:

          因为这是错误的方式,我猜。

          var array1 = [5];
          var array2 = [3,4,5];
          

          是您想要的方式。

          【讨论】:

            猜你喜欢
            • 2010-10-19
            • 2010-12-10
            • 2021-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-09-17
            相关资源
            最近更新 更多