बेशक
, Object.keys()
सबसे अच्छा तरह से एक वस्तु की कुंजी प्राप्त करने के लिए है। यदि यह आपके पर्यावरण में उपलब्ध नहीं है, तो यह आपके उदाहरण में कोड जैसे कोड का उपयोग करके shimmed हो सकता है (सिवाय इसके कि आपको ध्यान में रखना होगा कि आपका लूप प्रोटोटाइप श्रृंखला के सभी गुणों पर फिर से शुरू होगा, 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) से अलग है। आप बस shim on the MDN documentation का उपयोग कर सकते हैं।
'if (foo.hasOwnProperty (key)) जोड़ने के अलावा, मैं यही करता हूं। या, '$ .map' का उपयोग करें। –
ओह पाइथोनिक एक-लाइनर के लिए, हालांकि ... – Richard
एक पुराना सवाल है, इसलिए पूर्ण जवाब के लायक नहीं है, लेकिन उन लोगों के लिए जो बेकार करना चाहते हैं ... http://jsfiddle.net/LR5D9/3/ यह समाधान संबंधित है x' loops में var के लिए 'गड़बड़ाना प्रोटोटाइप घोषणाओं का मुद्दा – unsynchronized