如何初始化数组变量

How to initialize array variable

我想在javascript中动态初始化一个变量数组。我不断收到意外的令牌非法令牌错误。

在我当前的脚本中,serviceLimit = 10;但它可以随时更改。

尝试 #1

var jqSvcPhrase = {};
for(i=1; i<=serviceLimit; i++) {
  jqSvcPhrase[+ i +] = ''; // produces - Uncaught SyntaxError: Unexpected token ]
}

尝试#2

var jqSvcPhrase = {};
for(i=1; i<=serviceLimit; i++) {
  jqSvcPhrase\[+ i +\] = ''; // produces - Uncaught SyntaxError: Unexpected token ILLEGAL
}

尝试 #3

var jqSvcPhrase = {};
for(i=1; i<=serviceLimit; i++) {
  jqSvcPhrase\[+ i +\] = ''; // produces - Uncaught SyntaxError: Unexpected token ILLEGAL
}

呃...所有 + 是怎么回事?

var jqSvcPhrase = {};
for(i=1; i<=serviceLimit; i++) {
  jqSvcPhrase[i] = '';
}

i是整数类型,所以不需要拼接。试试这个:

var jqSvcPhrase = {};
for (i = 1; i <= serviceLimit; i++) {
      jqSvcPhrase[i] = '';
}

首先你要声明一个对象而不是数组。 它应该是 var jqSvcPhrase = []; 而不是。 此外,不需要 + 。必须是 jqSvcPhrase[i]

为什么要用大括号?对数组使用方括号。

var jqSvcPhrase = [];
for(i=1; i<=serviceLimit; i++) {
      jqSvcPhrase[i] = '';
}

数组语法(Manual):

[element0, element1, ..., elementN] 
new Array(element0, element1[, ...[, elementN]]) 
new Array(arrayLength)

这应该是:

var jqSvcPhrase = new Array(serviceLimit);

初始化值是有意义的:

for (x in jqSvcPhrase) { x = ''; }