Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Reindex javascript array / object after removing a key

For example:

var Cars = {
    1: { "Make": "Honda",
         "Model": "Accord",
         "Color": "Red"
    },
    2: { "Make": "Honda",
         "Model": "Civic",
         "Color": "Silver"
    },
    3: { "Make": "Honda",
         "Model": "Jazz",
         "Color": "Yellow"
    }

If I do a delete.Cars[2]; I will be left with Cars[1] and Cars[3].

I need a way (JS or jQuery) so that when I delete a key, the object reindexes. So, in the example above, I'm left with Cars[1] and Cars[2] (which was Cars[3]).

like image 772
joedborg Avatar asked Nov 29 '11 11:11

joedborg


2 Answers

That is because you dont need the keys for the array.

var Cars = [
    {
        "Make": "Honda",
        "Model": "Accord",
        "Color": "Red"
    },{
        "Make": "Honda",
        "Model": "Civic",
        "Color": "Silver"
    },{
        "Make": "Honda",
        "Model": "Jazz",
        "Color": "Yellow"
    }
];

alert(Cars[1]['Make']); // Honda
like image 190
Elzo Valugi Avatar answered Nov 05 '22 10:11

Elzo Valugi


You can have a look at this:

Array: Javascript - Reindexing an array

Object: Algorithm to re-index an array of objects after insertion or drag 'n' drop order change

It should do the trick :)

Referencing other developers in this thread, and myself, it will be better to use an Array.

like image 4
Marc Uberstein Avatar answered Nov 05 '22 10:11

Marc Uberstein