Tất nhiên, Object.keys()
là cách tốt nhất để lấy các khóa của Object. Nếu nó không có sẵn trong môi trường của bạn, nó có thể bị lung lay một cách tầm thường bằng cách sử dụng mã như trong ví dụ của bạn (ngoại trừ bạn cần tính đến vòng lặp của mình sẽ lặp lại tất cả các thuộc tính trong chuỗi nguyên mẫu, không giống như Object.keys()
hành vi của chuỗi ).
Tuy nhiên, mã ví dụ của bạn ...
var foo = { 'alpha' : 'puffin', 'beta' : 'beagle' };
var keys = [];
for (var key in foo) {
keys.push(key);
}
jsFiddle .
... Có thể được sửa đổi. Bạn có thể làm bài tập ngay trong phần biến .
var foo = { 'alpha' : 'puffin', 'beta' : 'beagle' };
var keys = [], i = 0;
for (keys[i++] in foo) {}
jsFiddle .
Tất nhiên, hành vi này khác với những gì Object.keys()
thực sự làm ( jsFiddle ). Bạn chỉ có thể sử dụng shim trên tài liệu MDN .
if(foo.hasOwnProperty(key))
, đó là những gì tôi sẽ làm. Hoặc, sử dụng$.map
.