简体   繁体   中英

very simple, javascript arrays syntax

I have a very simple JS Arrays question, my simple canvas game has been behaving differently when I replaced one block of code with another. Could you look them over and see why they are functionally different from one another, and maybe provide a suggestion? I may need these arrays to have 20+ items so I'm looking for a more condensed style.

There's this one, which is short enough for me to work with, but doesn't run well:

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);

And then there's the original one, which is longer but works fine:

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;

Arrays are zero-indexed in JavaScript. The first element is 0 , not 1 :

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

Also, you may want to use the more common array constructor:

var srd = [1, 1, 1];

I have a feeling that you may be assuming that the first element is 1 instead of 0 , which is why the first version doesn't work while the second one does.

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

It depends on your implementation, but it's likely because of arrays being 0-indexed. In your first block of code, each number is offset by one index spot from the second block. The first one is equivalent to:

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

in the way you wrote it for the second block.

You should do this....in Arrays values are stored as such that first one is at 0 and so on. so 1st value will be accessed as this...

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

Do this (you see i actually read your question and this is what you like)

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

you can declare an array(object) in javascript like this

var x = []; -------------Literal - its a shortcut provided by JS to quickly declare something as an Array.

var x = new Array; --Array constructor

Things to look up regarding

literal

  • object literal
  • proto
  • word new
  • function object
  • function property prototype

You can also do these:

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM