非常简单,javascript数组语法

非常简单,javascript数组语法,javascript,arrays,Javascript,Arrays,我有一个非常简单的JS数组问题,当我用一个代码块替换另一个代码块时,我的简单画布游戏的表现不同。你能看一下它们,看看为什么它们在功能上彼此不同,并提供一个建议吗?我可能需要这些阵列有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); 还有原版

我有一个非常简单的JS数组问题,当我用一个代码块替换另一个代码块时,我的简单画布游戏的表现不同。你能看一下它们,看看为什么它们在功能上彼此不同,并提供一个建议吗?我可能需要这些阵列有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;

看起来一个从索引0开始数组,另一个从索引1开始。这取决于您的实现,但很可能是因为数组是0索引的。在第一个代码块中,每个数字从第二个代码块偏移一个索引点。第一个相当于:

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

按照您为第二个块编写的方式。

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

var srd = new Array();
srd[0] = 1; 
srd[1] = 1; 
srd[2] = 1; 
此外,您可能希望使用更常见的数组构造函数:

var srd = [1, 1, 1];

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

您应该这样做。在数组中,值的存储方式是第一个元素为0,以此类推。 所以第一个值将被访问,因为

 var x = abc[0]; //first value of array abc being assigned to x.
这样做(你看我实际上读了你的问题,这就是你喜欢的)

您可以像这样在javascript中声明一个数组(对象

var x=[]-------------Literal-它是JS提供的一种快捷方式,用于快速将某些内容声明为数组

var x=新数组--数组构造函数

值得注意的事情

文字

  • 对象文字
  • 原型
  • 新词
  • 函数对象
  • 功能属性原型
您还可以执行以下操作:

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


var b=something | |{}\\成为名为某物的对象的副本,如果它不存在,则成为空对象。

谢谢!我忘了,总是碰到那个问题:)谢谢!我忘了,总是碰到那个问题:)谢谢!我忘了,总是碰到那个问题:)
 var srd=['',1,1,1];
 var sw=['',0,0,0];
 var sang=['',0,0,0];
 var sHealth=['',20,20,20];