কম্পিউটার টিউটোরিয়াল

JavaScript-এ অবজেক্ট কী থেকে আন্ডারস্কোর (_) রিমুভ করে ক্যামেলকেসে রূপান্তর

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);

চলানোর পদ্ধতি

  1. কোডটি camelCaseKeys.js নামে সংরক্ষণ করুন।
  2. টার্মিনালে চালান: 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 রেসপন্স → ক্যামেলকেস জাভাস্ক্রিপ্ট অবজেক্ট
  • ডেটাবেজ কলাম নাম → ফ্রন্টএন্ড প্রপার্টি নাম
  • কনফিগারেশন অবজেক্ট নরমালাইজেশন
  1. জাভাস্ক্রিপ্টে সাব-অবজেক্ট ও অ্যারে সহ অবজেক্ট ইমপোর্ট করা

  2. জাভাস্ক্রিপ্টে অরিজিনাল অ্যারে পরিবর্তন না করে অবজেক্ট কী পরিবর্তন করা

  3. জাভাস্ক্রিপ্টে বাটন ক্লিক করলে নাম যোগ ও মুছে ফেলা

  4. জাভাস্ক্রিপ্টে prompt দিয়ে মান নিয়ে কন্ডিশন অনুযায়ী ইভ্যালুয়েট করা