1

私は次の配列を持っています:

>>> var cars = new Array;
undefined

>>> cars[5] = 'Volvo';
"Volvo"

>>> cars[10] = 'Honda';
"Honda"

>>> cars
[undefined, undefined, undefined, undefined, undefined, "Volvo", undefined, undefined, undefined, undefined, "Honda"]

>>> cars.length
11

carsスパースではない新しい配列を取得する方法はありますか?のように['Volvo', 'Honda']。実際、私の場合、値の順序さえ重要ではありません。

もちろん、ループでそれを行うことはできますが、よりエレガントなソリューションを探しています。jQueryオプションです!

4

2 に答える 2

3

jQuery.map配列の平坦化は自動的に行われます:

var flattenedArr = $.map(cars, function(v) {
    return v;
});

フィドル

于 2013-01-01T23:13:40.977 に答える
2
cars = $.grep(arr, function(n){
    return(n);
});

これにより、配列の定義された要素がそのまま残り、未定義の要素が無視されます。

より詳しい情報

于 2013-01-01T23:10:41.903 に答える