Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> JavaScript

JavaScript में ऑब्जेक्ट की कुंजियों को मॉडिफाई करके अंडरस्कोर कैसे हटाएं?

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"
  1. जावास्क्रिप्ट में ऑरिजिनल ऐरे को बदले बिना ऑब्जेक्ट की को कैसे बदलें? जावास्क्रिप्ट में ऑरिजिनल ऐरे को बदले बिना ऑब्जेक्ट की को कैसे बदलें?

    जावास्क्रिप्ट में ऑरिजिनल ऐरे को बदले बिना ऑब्जेक्ट की को बदलने का कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang=en> <head> <meta charset=UTF-8 /> <meta name=viewport content=width=device-width, initial-scale=1.0 /> <title>Document</title> <styl

  1. JavaScript में बटन क्लिक पर नाम कैसे जोड़ें और हटाएं? JavaScript में बटन क्लिक पर नाम कैसे जोड़ें और हटाएं?

    उदाहरण addEventListener() और remove() का उपयोग करके डायनामिकली नाम जोड़ें और हटाएं। { var actualName = givenName.value; if (actualName.length != 0) { var createAnHTMLList = `${actualName}Remove Name`; listOfName.innerHTML += createAnHTMLList;

  1. JavaScript में प्रॉम्प्ट से मान दर्ज करें और शर्तों के आधार पर मूल्यांकन करें? JavaScript में प्रॉम्प्ट से मान दर्ज करें और शर्तों के आधार पर मूल्यांकन करें?

    मान लीजिए हम प्रॉम्प्ट से दो मान प्राप्त कर रहे हैं: var firstvalue = parseInt(prompt(Enter the value1)); var secondvalue = parseInt(prompt(Enter the value2)); उदाहरण निम्नलिखित कोड देखें: Document 50) document.write(Result is correct); else document.write(Result is not