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

JavaScript में JSON ऑब्जेक्ट में कुंजियों और मानों की तुलना करना जब एक ऑब्जेक्ट में अतिरिक्त कुंजियाँ हों


मान लीजिए, हमारे पास दो JSON ऑब्जेक्ट हैं जैसे -

const obj1 = {a: "apple", b: "banana", c: "carrot"};
const obj2 = {a: "apple", e: "egg", b: "banana", c: "carrot", d: "dog"};

हमें एक JavaScript फ़ंक्शन लिखना है जो ऐसे दो ऑब्जेक्ट लेता है। हम दोनों ऑब्जेक्ट में से किसी से भी डेटा हटाए बिना दो ऑब्जेक्ट की तुलना करने के लिए एक बूलियन जांच करना चाहते हैं।

उदाहरण के लिए, यदि मैं उपरोक्त डेटा का उपयोग करता, तो बूलियन जांच को true लौटाना चाहिए क्योंकि दोनों ऑब्जेक्ट में मौजूद कुंजियों के मान मेल खाते हैं।

हालांकि, मान लीजिए obj1 वही रहता है लेकिन obj2 निम्नलिखित है -

const obj1 = {a: "apple", b: "banana", c: "carrot"}
const obj2 = {a: "ant", e: "egg", b: "banana", c: "carrot", d: "dog"}

इस डेटा के साथ, यह false लौटाना चाहिए क्योंकि एक कुंजी का मान मेल नहीं खाता भले ही अन्य फ़ील्ड मेल खाते हों और कुछ फ़ील्ड दोनों ऑब्जेक्ट में मौजूद न हों।

उदाहरण

इसके लिए कोड होगा -

const obj1 = {
    a: "apple",
    b: "banana",
    c: "carrot"
}
const obj2 = {
    a: "apple",
    b: "banana",
    c: "carrot",
    d: "dog",
    e: "egg"
}
const obj3 = {a: "apple", b: "banana", c: "carrot"}
const obj4 = {a: "ant", e: "egg" ,b: "banana", c: "carrot", d: "dog"}
function checkEquality(a, b) {
    const entries1 = Object.entries(a);
    const entries2 = Object.entries(b);
    const short = entries1.length > entries2 ? entries2 : entries1;
    const long = short === entries1 ? b : a;
    const isEqual = short.every(([k, v]) => long[k] === v);
    return isEqual;
}
console.log(checkEquality(obj1, obj2))
console.log(checkEquality(obj3, obj4))

आउटपुट

कंसोल में आउटपुट होगा -

true false
  1. - JavaScript में दो सरणियों को एक ऑब्जेक्ट में की-वैल्यू जोड़ी के रूप में कैसे संग्रहीत करें?

    मान लीजिए, हमारे पास समान लंबाई की लिटरल्स की दो सरणियाँ हैं जैसे −const arr1 = [firstName, lastName, age, address, isEmployed]; const arr2 = [Rahul, Sharma, 23, Tilak Nagar, false];हमें एक JavaScript फ़ंक्शन लिखना आवश्यक है जो ऐसी दो सरणियाँ लेता है।फ़ंक्शन को एक ऑब्जेक्ट बनाना चाहिए जो दूसरी

  1. - जावास्क्रिप्ट में मानों को कुंजियों पर मैप करना

    मान लीजिए, हमारे पास एक ऑब्जेक्ट है जैसे -const obj = { a: 1, b: 2, c: 3, d: 4, e: 5, f: 6 };हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो ऐसा एक ऑब्जेक्ट लेता है। फ़ंक्शन को ऑब्जेक्ट के मानों को कुंजियों पर रिवर्स मैप करना चाहिए।इसलिए, उपरोक्त ऑब्जेक्ट के लिए, आउटपुट इस तरह दिखना चाह

  1. - JavaScript में JSON ऑब्जेक्ट को फ्लैट करना

    मान लीजिए, हमारे पास निम्नलिखित JSON ऑब्जेक्ट है जिसमें किसी भी स्तर तक नेस्टिंग हो सकती है: const obj = { one: 1, two: { three: 3 }, four: { five: 5, six: { seven: 7 }, eight: 8 }, nine: 9 }; हमें एक JavaScript फ़ंक्शन लिखना है जो ऐसा एक नेस्टेड JSON ऑब्जेक्ट ल