Преобразовать ассоциативный массив в числовой массив - PullRequest
12 голосов
/ 09 марта 2011

У меня есть следующая структура ассоциативного массива в JavaScript

Array (
    [-1] => Array (
        catId : -1
        [subCatId] => Array (
             subCatId : -3
            [0] => Array (
                property : value
            )
            [1] => Array (
                property : value
            )
        )
    )
    [-4] => Array (
        catId : -4
        [subCatId] => Array (
             subCatId : -6
            [0] => Array (
                property : value
            )
            [1] => Array (
                property : value
            )
        )
    )
)

Я хочу преобразовать это в числовой массив, например,

Array(
    [0] => Array(
        catID : -1
        [subCatId] => Array (
             subCatId : -3
            [0] => Array (
                property : value
            )
            [1] => Array (
                property : value
            )
        )
    )
    [1] => Array(
        catID : -4
        [subCatId] => Array (
             subCatId : -3
            [0] => Array (
                property : value
            )
            [1] => Array (
                property : value
            )
        )
    )
)

Я пытался использовать,

var numeric_array = new Array();
for (var items in Array){
    numeric_array=Array[items];
}

но это не достижение моего требуемого результата, любые предложения или комментарии очень ценятся.

1 Ответ

19 голосов
/ 09 марта 2011

попробуйте это:

var numeric_array = new Array();
for (var items in Array){
    numeric_array.push( Array[items] );
}

кстати, я не уверен, Array - хорошее имя для всего массива:

var hash_array = []; // array which you have
...
var numeric_array = [];
for ( var item in hash_array ){
    numeric_array.push( hash_array[ item ] );
}
...