Бывает что нужно переопределить индексы массива в JavaScript. Причин для этого может быть масса, самая распространённая это — удаление значения массива, который удаляется вместе с ключом. Например был массив:
1 2 3 4 |
a[0] = "123"; a[1] = "444"; a[2] = "asd"; a[3] = "dfg"; |
Мы удалили значение с ключом 2 (a[2] = «asd») и получилось:
1 2 3 |
a[0] = "123"; a[1] = "444"; a[3] = "dfg"; |
После чего значения ключей идут не по порядку. Если в php есть функция array_values($arr), то в js готовой функции для этого нет (автор не нашёл), по этому можно использовать собственную функцию:
1 2 3 4 5 6 7 8 9 10 11 |
function array_values(input) { var tmp_arr = new Array(), cnt = 0; for (key in input){ tmp_arr[cnt] = input[key]; cnt++; } return tmp_arr; } |
После её применения ( array_values(a) ) массив будет выглядеть так:
1 2 3 |
a[0] = "123"; a[1] = "444"; a[2] = "dfg"; |