Звичайно, Object.keys()
це найкращий спосіб отримати ключі Об’єкта. Якщо він недоступний у вашому оточенні, його можна тривіально прошивати, використовуючи код, наприклад у вашому прикладі (за винятком того, що вам потрібно буде врахувати, що ваш цикл буде повторюватись над усіма властивостями ланцюга прототипу, на відміну від Object.keys()
поведінки).
Однак ваш приклад код ...
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
.