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
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With