Конечно, Object.keys()
это лучший способ получить ключи Объекта. Если он не доступен в вашей среде, это может быть тривиальным подкладками с помощью кода , например , как в вашем примере ( за исключением вы должны принять во внимание ваш цикл будет перебрать все свойства в цепочке прототипов, в отличие от Object.keys()
поведения «s).
Тем не менее, ваш пример кода ...
var foo = { 'alpha' : 'puffin', 'beta' : 'beagle' };
var keys = [];
for (var key in foo) {
keys.push(key);
}
jsFiddle .
... может быть изменено. Вы можете сделать назначение прямо в переменной части.
var foo = { 'alpha' : 'puffin', 'beta' : 'beagle' };
var keys = [], i = 0;
for (keys[i++] in foo) {}
jsFiddle .
Конечно, это поведение отличается от того, что на Object.keys()
самом деле ( jsFiddle ). Вы можете просто использовать прокладку в документации MDN .
if(foo.hasOwnProperty(key))
, это то, что я бы сделал. Или используйте$.map
.