Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

1つのオブジェクトにJavaScriptで追加のキーがある場合、JSONオブジェクトのキーと値を比較します


このような2つのJSONオブジェクトがあるとします-

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

このような2つのオブジェクトを取り込むJavaScript関数を作成する必要があります。どちらか一方からデータを削除せずに、2つのオブジェクトを比較するブールチェックを実行できるようにする必要があります。

たとえば、上記のデータを使用する場合、両方のオブジェクトにあるキーの値が一致するため、ブールチェックは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 obj = {    'a': 1,    'b': 2,    'c': 3,    'd': 4,    'e': 5,    'f': 6 }; そのようなオブジェクトを1つ取り込むJavaScript関数を作成する必要があります。関数は、値をオブジェクトのキーに逆マップする必要があります。 したがって、上記のオブジェク

  2. JavaScriptでJSONオブジェクトをフラット化する

    次のJSONオブジェクトがあり、任意のレベルまでのネストが含まれている可能性があります- const obj = {    "one": 1,    "two": {       "three": 3    },    "four": {       "five": 5,       "six": { &nb