Подтвердить что ты не робот

Reindex javascript array/object после удаления ключа

Например:

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

Если я сделаю delete.Cars[2];, меня оставят Автомобили [1] и Автомобили [3].

Мне нужен способ (JS или jQuery), так что, когда я удаляю ключ, объект переиндексируется. Итак, в приведенном выше примере, я остался с Cars [1] и Cars [2] (который был Cars [3]).

4b9b3361

Ответ 1

Это потому, что вам не нужны ключи для массива.

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

Ответ 2

Вы можете посмотреть на это:

Массив: Javascript - переиндексация массива

Объект: Алгоритм переиндексации массива объектов после вставки или перетаскивания "n" смены порядка сортировки

Он должен сделать трюк:)

Обращаясь к другим разработчикам в этом потоке, и я сам, лучше использовать Массив.