下午好。我有一个数组,里面有一些键和值。然后我需要获取数组键,而不是其中的数据。我想用jQuery来做这件事。例如,我知道PHP有一个函数array_keys();它将数组作为参数,返回一个数组,其中包含每个索引中的每个键。
这是我想出来的,而且很有效...唯一的问题是它看起来太低效了;
var foo = [];
foo['alfa'] = "first item";
foo['beta'] = "second item";
for (var key in foo) {
console.log(key);
}
这将输出;
alfa
beta
但是,是否有任何预定义的函数,如在PHP或任何其他更有效的方式来获得这一点?
6条答案
按热度按时间bweufnob1#
可以使用
each
函数:它有几个不错的快捷方式/技巧:check the gory details here
dgsult0t2#
使用jQuery,从对象获取键数组的最简单方法如下:
在您的示例中,它将返回以下数组:第一个月
xv8emn3q3#
在现代浏览器中,获取数组键的最简单方法是
Object.keys()
。u91tlkcl4#
不要重新发明轮子,使用Underscore
通过利用Underscore库中的
keys
方法,您可以简单地执行以下操作:另外,还有很多其他有用的函数值得细读。
vybvopom5#
使用一个对象(键/值对,最接近于关联数组的JavaScript)来表示这个对象,而不是数组对象。
作为对您评论的回应,我相信本文最好地总结了JavaScript中数组不应该以这种方式使用的原因-
tyg4sfes6#
我用我创建的这个函数...
我认为你可以在第一次测试中将obj设置为self或更好的值。有时候我似乎也在检查它是否为空,所以我这样做了。而且我不认为{}是Object.*,或者至少这样在Object上查找函数getKeys有问题。也许你应该先放置prototype,但这似乎会导致与GreenSock等的冲突。