简体   繁体   中英

Declaring a multidimensional array's value to true or false

Can I declare a multidimensional array in Javascript as follows:

var linkArray = new Array(3);
linkArray[0][0] = 'boothsize_link';
linkArray[0][1] = true;
linkArray[0][2] = false;
linkArray[1][0] = 'enkfur_link';
linkArray[1][1] = true;
linkArray[1][2] = false;
linkArray[2][0] = 'enklight_link';
linkArray[2][1] = true;
linkArray[2][2] = false;

Is this valid?

No this is not valid, you have to initialize each subarray as well:

var linkArray = new Array(3);
linkArray[0] = [];
linkArray[0][0] = 'boothsize_link';
linkArray[0][1] = true;
linkArray[0][2] = false;
etc

In general, array initializers are much easier to write using [...] literals:

var linkArray = [
    ['boothsize_link', true, false],
    ['enkfur_link', true, false],
    etc

]

Is this valid?

Yes, that's valid JavaScript syntax (apart from the typo flase , which will be an undefined variable not a boolean value as expected).

Will it throw an exception?

Yes. By assigning a new, empty array with a lenght of 3 to linkArray does not make the item arrays to whose properties you can assign something. linkArray[0] is undefined , and linkArray[0][0] will throw an error. You would need to call

linkArray[0] = new Array(3);

before, and the same for linkArray[1] and linkArray[2] (better be done in a loop).

Or you just use array literals , which are the standard method to declare arrays:

var linkArray = [
    ['boothsize_link', true, false],
    ['enkfur_link',    true, flase],
    ['enklight_link',  true, false]
];

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