js / jquery - 如何获取没有索引的数组值

时间:2013-01-01 23:04:55

标签: javascript jquery arrays

我有以下数组:

>>> 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也是一种选择!

2 个答案:

答案 0 :(得分:3)

jQuery.map会自动排列数组:

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

Fiddle

答案 1 :(得分:2)

cars = $.grep(arr, function(n){
    return(n);
});

这只留下数组中已定义的元素,并忽略未定义的元素。

more info