JavaScript-এ রেগুলার এক্সপ্রেশন এবং `Object.fromEntries()` ব্যবহার করে অবজেক্টের কীগুলো থেকে আন্ডারস্কোর রিমুভ করে ক্যামেলকেস ফরম্যাটে রূপান্তর করা যায়।
কোড উদাহরণ
// আন্ডারস্কোর + অক্ষর → বড় হাতের অক্ষর
const toCamelCase = str => str.replace(/(_)(.)/g, (_, __, char) => char.toUpperCase());
const jsonObject = {
first_Name_Field: 'John',
last_Name_Field: 'Smith'
};
// কীগুলো ট্রান্সফরম
const result = Object.fromEntries(
Object.entries(jsonObject).map(([key, value]) => [toCamelCase(key), value])
);
console.log("ফলাফল:", result);
চলানোর পদ্ধতি
- কোডটি
camelCaseKeys.jsনামে সংরক্ষণ করুন। - টার্মিনালে চালান:
node camelCaseKeys.js
আউটপুট
ফলাফল: { firstNameField: 'John', lastNameField: 'Smith' }
রেগেক্স ব্যাখ্যা
| প্যাটার্ন | অর্থ |
|---|---|
_ | আন্ডারস্কোর ম্যাচ |
(.) | পরবর্তী যেকোনো ক্যারেক্টার ক্যাপচার (গ্রুপ ২) |
g | গ্লোবাল (সব ম্যাচ) |
রিপ্লেসমেন্ট ফাংশনে: `char.toUpperCase()` দিয়ে ক্যাপচার করা ক্যারেক্টার বড় হাতের করা হয়।
আরো রবাস্ট ফাংশন
function convertKeysToCamelCase(obj) {
return Object.fromEntries(
Object.entries(obj).map(([key, value]) => [
key.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase()),
value
])
);
}
// নেস্টেড অবজেক্ট হ্যান্ডলিং (রিকারসিভ)
function deepCamelCase(obj) {
if (Array.isArray(obj)) return obj.map(deepCamelCase);
if (obj !== null && typeof obj === 'object') {
return convertKeysToCamelCase(
Object.fromEntries(
Object.entries(obj).map(([k, v]) => [k, deepCamelCase(v)])
)
);
}
return obj;
}
বিকল্প: লোডাশ (lodash)
// _.mapKeys(obj, (v, k) => _.camelCase(k))
// npm install lodash দরকার
ব্যবহার ক্ষেত্র
- স্নেক_কেস API রেসপন্স → ক্যামেলকেস জাভাস্ক্রিপ্ট অবজেক্ট
- ডেটাবেজ কলাম নাম → ফ্রন্টএন্ড প্রপার্টি নাম
- কনফিগারেশন অবজেক্ট নরমালাইজেশন