জাভাস্ক্রিপ্ট অবজেক্টের "কীগুলি" সরাসরি চালিত করার কোনও সংক্ষিপ্ত উপায় নেই। এটি সত্যই এর জন্য ডিজাইন করা হয়নি। আপনার নিয়মিত জিনিস (বা আপনার অ্যারে নমুনা কোডের পরামর্শ অনুসারে একটি অ্যারে) এর চেয়ে ভাল কিছুতে ডেটা দেওয়ার স্বাধীনতা আছে কি?
যদি তা হয়, এবং আপনার প্রশ্নটি যদি পুনরায় উত্তম হতে পারে "যদি আমি সাজানো ক্রমে চাবিগুলি পুনরুক্ত করতে চাই তবে আমি কী অভিধান-এর মতো অবজেক্টটি ব্যবহার করব?" তাহলে আপনি এটির মতো কোনও বিষয় বিকাশ করতে পারেন:
var a = {
keys : new Array(),
hash : new Object(),
set : function(key, value) {
if (typeof(this.hash[key]) == "undefined") { this.keys.push(key); }
this.hash[key] = value;
},
get : function(key) {
return this.hash[key];
},
getSortedKeys : function() {
this.keys.sort();
return this.keys;
}
};
// sample use
a.set('b',1);
a.set('z',1);
a.set('a',1);
var sortedKeys = a.getSortedKeys();
for (var i in sortedKeys) { print(sortedKeys[i]); }
যদি ডেটা নিয়মিত বস্তুতে থাকে তবে আপনার যদি নিয়ন্ত্রণ না থাকে তবে এই ইউটিলিটি নিয়মিত বস্তুকে আপনার সম্পূর্ণ-কার্যকরী অভিধানে রূপান্তরিত করবে:
a.importObject = function(object) {
for (var i in object) { this.set(i, object); }
};
এটি সরলতার জন্য একটি বস্তুর সংজ্ঞা ছিল (পুনরায় ব্যবহারযোগ্য কনস্ট্রাক্টর ফাংশনের পরিবর্তে); ইচ্ছায় সম্পাদনা করুন।