Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Insert into array at non-existent index

I'm trying to format an array in javascript with data pulled from a database so that the ID of the row is the index of the array, so the data

ID | Data
----------------------------
1  | hi
2  | more data
4  | junk data
8  | hello world
12 | h3ll0

would look like

array:
    [1] = hi
    [2] = more data
    [4] = junk data
    [9] = hello world
    [12] = h3ll0

i have tried using array.splice(id,1,data) but when i console.log the array the indexes don't match, almost as if because an index isn't exist before it just appends the value at the end of the array.

So i am wondering how i can go about adding data to an array at any index so i can create an array as shown in the example

like image 448
Memor-X Avatar asked Dec 07 '22 02:12

Memor-X


1 Answers

Believe it or not, you just assign to it:

var a = []; // Creates array
a[1] = "hi";
a[2] = "more data";
a[4] = "junk data";
a[9] = "hello world";
a[12] = "h3ll0";

This is because standard arrays in JavaScript aren't really arrays at all, they're just objects with some special behavior. Array "entries" are just object properties. And in JavaScript, if you assign to an object property that doesn't exist yet, it gets created.

You only need an array for this if you plan to use array features, like length (which will be 13 in the above example; it's always one higher than the highest index, or it's the value you give it if you assign to length directly), or splice, etc. If you don't plan to use those features, you can just use an object (var a = {}; rather than var a = [];). Nothing else above changes.

like image 136
T.J. Crowder Avatar answered Dec 24 '22 00:12

T.J. Crowder