非常简单的javascript数组语法

时间:2013-06-23 01:54:31

标签: javascript arrays

我有一个非常简单的JS Arrays问题,当我用一个代码块替换另一个代码块时,我的简单画布游戏表现不同。你能看一下它们,看看为什么它们在功能上彼此不同,并且可能提供一个建议吗?我可能需要这些数组有20多个项目,所以我正在寻找更浓缩的风格。

有这个,这对我来说足够短,但不能很好地运行:

var srd=new Array(1,1,1);
var sw=new Array(0,0,0);
var sang=new Array(0,0,0);
var sHealth=new Array(20,20,20);

然后是原来的那个,这个更长但工作正常:

var srd = new Array();
srd[1] = 1; 
srd[2] = 1; 
srd[3] = 1; 
var sw = new Array();
sw[1] =0; 
sw[2] =0; 
sw[3] =0; 
var sang = new Array();
sang[1] = 0; 
sang[2] = 0; 
sang[3] = 0;
var sHealth = new Array();
sHealth[1] = 20; 
sHealth[2] = 20; 
sHealth[3] = 20;

4 个答案:

答案 0 :(得分:2)

在JavaScript中,数组是零索引的。第一个元素是0,而不是1

var srd = new Array();
srd[0] = 1; 
srd[1] = 1; 
srd[2] = 1; 

此外,您可能希望使用更常见的数组构造函数:

var srd = [1, 1, 1];

我觉得您可能认为第一个元素是1而不是0,这就是为什么第一个版本不起作用而第二个版本不起作用的原因。

答案 1 :(得分:0)

看起来像是在索引0处启动数组而另一个从索引1开始

答案 2 :(得分:0)

这取决于您的实现,但可能是因为数组被索引为0。在第一个代码块中,每个数字都被第二个块中的一个索引点偏移。第一个相当于:

var srd = new Array();
srd[0] = 1; 
srd[1] = 1; 
srd[2] = 1; 

你为第二个街区写的方式。

答案 3 :(得分:0)

你应该这样做....在数组中,值存储为第一个值为0,依此类推。 所以第一个值将被访问...

 var x = abc[0]; //first value of array abc being assigned to x.

这样做(你看我真的读了你的问题,这就是你喜欢的)

 var srd=['',1,1,1];
 var sw=['',0,0,0];
 var sang=['',0,0,0];
 var sHealth=['',20,20,20];

你可以在这样的javascript中声明一个数组(对象)

var x = []; ------------- Literal - 它是JS提供的一个快捷方式,用于快速声明某个数组。

var x = new Array; --Array 构造函数

关于

的事情

<强>字面

  • object literal
  • word new
  • 功能对象
  • 功能属性原型

你也可以这样做:

var x=1,y=2, z=3, f;

var b = something || {}; \\become a copy of object called something if it's not there then become an empty object.