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

JavaScript में शर्त के आधार पर ऑब्जेक्ट प्रॉपर्टी कैसे बदलें?

लॉजिकल AND (&&) ऑपरेटर और स्प्रेड सिंटैक्स (...) का उपयोग करके शर्त के आधार पर ऑब्जेक्ट प्रॉपर्टी सशर्त रूप से जोड़ें/बदलें।

बुनियादी पैटर्न

const condition = true;
const baseObj = { a: 1, b: 2 };

// condition true होने पर ही c: 3 जोड़ें
const result = { 
    ...baseObj, 
    ...(condition && { c: 3 }) 
};

console.log(result); // { a: 1, b: 2, c: 3 }

const condition2 = false;
const result2 = { 
    ...baseObj, 
    ...(condition2 && { c: 3 }) 
};

console.log(result2); // { a: 1, b: 2 } - c नहीं जुड़ा

व्यावहारिक उदाहरण: बैकलॉग फ्लैग

let marksDetails = { Mark1: 33, Mark2: 89 };
let isBacklog = false;

// बैकलॉग false - Mark1 अपरिवर्तित
let result1 = { 
    ...marksDetails, 
    ...(isBacklog === true && { Mark1: 93 }) 
};
console.log("बैकलॉग false:", result1); // { Mark1: 33, Mark2: 89 }

isBacklog = true;

// बैकलॉग true - Mark1 बदलकर 93
let result2 = { 
    ...marksDetails, 
    ...(isBacklog === true && { Mark1: 93 }) 
};
console.log("बैकलॉग true:", result2); // { Mark1: 93, Mark2: 89 }

फंक्शन के रूप में

function updateMarksIfBacklog(marks, isBacklog, newMark) {
    return {
        ...marks,
        ...(isBacklog && { Mark1: newMark })
    };
}

console.log(updateMarksIfBacklog({ Mark1: 50, Mark2: 60 }, false, 90));
// { Mark1: 50, Mark2: 60 }

console.log(updateMarksIfBacklog({ Mark1: 50, Mark2: 60 }, true, 90));
// { Mark1: 90, Mark2: 60 }

एकाधिक शर्तें

const user = { name: "John", age: 25 };
const isAdmin = true;
const isPremium = false;
const hasPermission = true;

const enrichedUser = {
    ...user,
    ...(isAdmin && { role: "admin", permissions: ["all"] }),
    ...(isPremium && { tier: "premium", discount: 0.2 }),
    ...(hasPermission && { accessLevel: "full" })
};

console.log(enrichedUser);
// { name: 'John', age: 25, role: 'admin', permissions: [ 'all' ], accessLevel: 'full' }

चलाने का तरीका

node conditional-property.js

आउटपुट

बैकलॉग false: { Mark1: 33, Mark2: 89 }
बैकलॉग true: { Mark1: 93, Mark2: 89 }

कैसे काम करता है

  • condition && value - यदि condition truthy तो value लौटाता है, अन्यथा condition (falsy) लौटाता है
  • { ...(false) } - फाल्सी मान स्प्रेड होने पर कोई प्रॉपर्टी नहीं जोड़ता
  • { ...(true && { x: 1 }) } → { ...{ x: 1 } } → { x: 1 }

नोट

यह पैटर्न सशर्त प्रॉपर्टी जोड़ने के लिए है। मौजूदा प्रॉपर्टी बदलने के लिए सीधे असाइनमेंट या Object.assign उपयोग करें।

  1. क्या हम JavaScript में जांच सकते हैं कि कोई प्रॉपर्टी ऑब्जेक्ट में है या नहीं? क्या हम JavaScript में जांच सकते हैं कि कोई प्रॉपर्टी ऑब्जेक्ट में है या नहीं?

    JavaScript में जांचने का कोड कि कोई प्रॉपर्टी ऑब्जेक्ट में मौजूद है या नहीं:उदाहरण<!DOCTYPE html> <html lang="hi"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title&

  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> <style>

  1. - CSS फ़िल्टर प्रॉपर्टी को एनिमेशन के साथ बदलें

    CSS में filter प्रॉपर्टी पर एनिमेशन लागू करने के लिए, आप निम्न कोड का उपयोग कर सकते हैं। यह उदाहरण दर्शाता है कि कैसे @keyframes का उपयोग करके किसी तत्व के फ़िल्टर प्रभाव (जैसे कंट्रास्ट) को समय के साथ बदला जा सकता है। उदाहरण <!DOCTYPE html> <html> <head> <style>