मैं आपको पुराने IE संस्करणों में समर्थित नहीं होने के बाद से Object.keys का उपयोग करने की सलाह नहीं देता। लेकिन अगर आपको वास्तव में इसकी आवश्यकता है, तो आप वापस संगतता की गारंटी के लिए ऊपर दिए गए कोड का उपयोग कर सकते हैं:
if (!Object.keys) {
Object.keys = (function () {
var hasOwnProperty = Object.prototype.hasOwnProperty,
hasDontEnumBug = !({toString: null}).propertyIsEnumerable('toString'),
dontEnums = [
'toString',
'toLocaleString',
'valueOf',
'hasOwnProperty',
'isPrototypeOf',
'propertyIsEnumerable',
'constructor'
],
dontEnumsLength = dontEnums.length;
return function (obj) {
if (typeof obj !== 'object' && typeof obj !== 'function' || obj === null) throw new TypeError('Object.keys called on non-object');
var result = [];
for (var prop in obj) {
if (hasOwnProperty.call(obj, prop)) result.push(prop);
}
if (hasDontEnumBug) {
for (var i=0; i < dontEnumsLength; i++) {
if (hasOwnProperty.call(obj, dontEnums[i])) result.push(dontEnums[i]);
}
}
return result;
}})()};
फ़ीचर फ़ायरफ़ॉक्स (गेको) 4 (2.0) क्रोम 5 इंटरनेट एक्सप्लोरर 9 ओपेरा 12 सफारी 5
अधिक जानकारी: https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/keys
लेकिन अगर आपको केवल पहले एक की आवश्यकता है, तो हम एक छोटे समाधान की व्यवस्था कर सकते हैं:
var data = {"key1":"123","key2":"456"};
var first = {};
for(key in data){
if(data.hasOwnProperty(key)){
first.key = key;
first.content = data[key];
break;
}
}
console.log(first); // {key:"key",content:"123"}