नहीं है जावास्क्रिप्ट ऑब्जेक्ट की "चाबियाँ" को सीधे तौर पर हेरफेर करने का कोई संक्षिप्त तरीका नहीं है। यह वास्तव में इसके लिए डिज़ाइन नहीं किया गया है। क्या आपके पास नियमित डेटा (या एक ऐरे, जैसा कि आपका नमूना कोड सुझाता है) से बेहतर कुछ डेटा में रखने की स्वतंत्रता है?
यदि ऐसा है, और यदि आपका प्रश्न फिर से लिखा जा सकता है "अगर मैं क्रमबद्ध क्रम में चाबियों को फिर से चालू करना चाहता हूं तो मुझे किस शब्द-जैसी वस्तु का उपयोग करना चाहिए?"
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); }
};
सादगी के लिए यह एक ऑब्जेक्ट परिभाषा (पुन: प्रयोज्य कन्स्ट्रक्टर फ़ंक्शन की बजाय) थी; इच्छा पर संपादित करें।
स्रोत
2009-05-21 00:58:16
आप नए ऐरे() निर्माण का उपयोग क्यों कर रहे हैं और फिर किसी ऑब्जेक्ट की तरह इसका उपयोग कर रहे हैं? –
@ ल्यूक .. मैंने इसे पहले भी किया, एक PHP पृष्ठभूमि से आ रहा था। मैंने अभी सीखा है :) – alex
@ ल्यूक: 'क्योंकि मैं अनुभवहीन हूं, ऐसा लगता है। क्या आप उत्तर में सही तरीके से पोस्ट कर सकते हैं? – mike