Object.fromEntries(), Object.entries(), map() और रेगुलर एक्सप्रेशन से स्नेक_केस कुंजियों को कैमलकेस में बदलें।
बुनियादी समाधान
// अंडरस्कोर + अगला अक्षर → अपरकेस अक्षर
const toCamelCase = str => str.replace(/(_)([a-z])/g, (_, __, letter) => letter.toUpperCase());
const jsonObject = {
first_Name_Field: 'John',
last_Name_Field: 'Smith',
user_age: 25
};
const output = Object.fromEntries(
Object.entries(jsonObject).map(([key, value]) => [toCamelCase(key), value])
);
console.log(output);
// { firstNameField: 'John', lastNameField: 'Smith', userAge: 25 }
चरण-दर-चरण व्याख्या
// 1. एंट्रीज़ प्राप्त करें: [ [key, value], [key, value], ... ]
Object.entries(jsonObject)
// [ ['first_Name_Field', 'John'], ['last_Name_Field', 'Smith'], ['user_age', 25] ]
// 2. प्रत्येक कुंजी ट्रांसफॉर्म करें
.map(([key, value]) => [toCamelCase(key), value])
// [ ['firstNameField', 'John'], ['lastNameField', 'Smith'], ['userAge', 25] ]
// 3. वापस ऑब्जेक्ट में बदलें
Object.fromEntries(...)
// { firstNameField: 'John', lastNameField: 'Smith', userAge: 25 }
रेगुलर एक्सप्रेशन विवरण
/_([a-z])/g
// _ - अंडरस्कोर मिलान
// ([a-z]) - कैप्चर ग्रुप: एक लोअरकेस अक्षर
// g - ग्लोबल (सभी घटनाएं)
// रिप्लेसमेंट फंक्शन
(_, __, letter) => letter.toUpperCase()
// _ = पूरा मिलान (_x)
// __ = पहला कैप्चर ग्रुप (_)
// letter = दूसरा कैप्चर ग्रुप (x) → X
एडवांस्ड: नेस्टेड ऑब्जेक्ट्स के लिए रिकर्सिव
function keysToCamelCase(obj) {
if (obj === null || typeof obj !== 'object') return obj;
if (Array.isArray(obj)) {
return obj.map(keysToCamelCase);
}
return Object.fromEntries(
Object.entries(obj).map(([key, value]) => [
key.replace(/(_)([a-z])/g, (_, __, l) => l.toUpperCase()),
keysToCamelCase(value)
])
);
}
const nested = {
user_info: {
first_name: "John",
address_details: {
street_name: "Main St"
}
},
order_items: [
{ item_name: "Book", item_price: 10 }
]
};
console.log(keysToCamelCase(nested));
/*
{
userInfo: {
firstName: "John",
addressDetails: { streetName: "Main St" }
},
orderItems: [ { itemName: "Book", itemPrice: 10 } ]
}
*/
चलाने का तरीका
node camelcase-keys.js
आउटपुट
The JSON Object= { firstNameField: 'John', lastNameField: 'Smith' }
उल्टा: कैमलकेस से स्नेक_केस
const toSnakeCase = str => str.replace(/[A-Z]/g, letter => '_' + letter.toLowerCase());
console.log(toSnakeCase("firstNameField")); // "first_name_field"