1つのオブジェクトにJavaScriptで追加のキーがある場合、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
-
キーへの値のマッピングJavaScript
このようなオブジェクトがあるとします- const obj = { 'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6 }; そのようなオブジェクトを1つ取り込むJavaScript関数を作成する必要があります。関数は、値をオブジェクトのキーに逆マップする必要があります。 したがって、上記のオブジェク
-
JavaScriptでJSONオブジェクトをフラット化する
次のJSONオブジェクトがあり、任意のレベルまでのネストが含まれている可能性があります- const obj = { "one": 1, "two": { "three": 3 }, "four": { "five": 5, "six": { &nb