Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript js/jquery-如何在没有索引的情况下获取数组值_Javascript_Jquery_Arrays - Fatal编程技术网

Javascript js/jquery-如何在没有索引的情况下获取数组值

Javascript js/jquery-如何在没有索引的情况下获取数组值,javascript,jquery,arrays,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, undefine

我有以下数组:

>>> 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
有没有一种方法可以让
汽车中的新阵列不稀疏-比如
['Volvo','Honda']
。实际上,在我的例子中,即使是值的顺序也不重要

当然,我可以通过循环来实现,但我正在寻找更优雅的解决方案
jQuery
也是一个选项

cars = $.grep(arr, function(n){
    return(n);
});
这只留下数组中已定义的元素,而忽略未定义的元素

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

阵列是否自动展平,以便:

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

阵列是否自动展平,以便:

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

如果不关心键,为什么需要显式指定键?已经回答过:嗯,我通过项id为数组编制索引,每个id指向一个对象。我需要将对象作为简单列表提供给第三方库。您也可以使用类似稀疏数组的对象。使用$.each()遍历对象。正如我建议使用对象一样。你甚至不需要一个库来迭代对象,在现代浏览器上,你只需要使用for-in循环。如果你不关心它们,为什么你需要显式地指定键呢?已经回答过了:好吧,我用项目id索引我的数组,每个id指向一个对象。我需要将对象作为简单列表提供给第三方库。您也可以使用类似稀疏数组的对象。使用$.each()遍历对象。正如我建议使用对象一样。您甚至不需要一个库来迭代对象,在现代浏览器上,您只需使用for-in循环即可。这是一个很好的解决方案,只需注意一点:通过这种方式可以从数组中消除falsy值。我猜
返回类型为n!='未定义'
在这方面会做得更好。这是一个很好的解决方案,只需注意:通过这种方式将从数组中消除错误值。我猜
返回类型为n!='未定义'
在这方面会做得更好。它是否删除了任何虚假的值或只是未定义的值?编辑:nvm,我现在看到了小提琴:)这是因为jQuery带有
null
所以
null==undefined//true
它是否删除了任何虚假的值或只是未定义的值?编辑:nvm,我现在看到了小提琴:)这是因为jQuery带有
null
so
null==undefined//true