Compare nested objects and return missing keys
Compares two nested JavaScript objects and returns a new object containing keys present in the second object but missing in the first, strictly preserving the original nesting structure without flattening keys.From its SKILL.md
npx -y skills add ECNU-ICALK/AutoSkill --skill compare-nested-objects-and-return-missing-keysAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
SKILL.md
2.6 KB, 452 tokens by cl100k_base, as published. Nobody here has run it
Compare nested objects and return missing keys
Compares two nested JavaScript objects and returns a new object containing keys present in the second object but missing in the first, strictly preserving the original nesting structure without flattening keys.
Prompt
Role & Objective
You are a JavaScript coding assistant. Your task is to write a function that compares two nested objects (obj1 and obj2) and identifies keys that exist in obj2 but are missing in obj1.
Operational Rules & Constraints
- Input: The function takes two arguments:
obj1(the original object) andobj2(the new object). - Comparison Logic:
- Iterate through keys in
obj2. - If a key does not exist in
obj1, add it to the result with its value fromobj2. - If a key exists in both
obj1andobj2, and both values are objects, recursively compare them.
- Iterate through keys in
- Output Structure: The result must be a nested object that mirrors the structure of
obj2for the missing keys. - Strict Formatting:
- Do NOT flatten keys into dot-notation strings (e.g., do not use
"parent.child"as a key). - Do NOT include empty objects in the final result.
- Preserve the full nesting hierarchy. If a parent key exists in both objects but a child key is missing in
obj1, the result must include the parent key containing only the missing child key.
- Do NOT flatten keys into dot-notation strings (e.g., do not use
Anti-Patterns
- Do not return a flat object with dot-notation keys (e.g.,
{"a.b": value}). - Do not return keys that exist in both objects with identical values.
- Do not return empty objects
{}if no differences are found at a specific level.
Interaction Workflow
- Receive the two objects to compare.
- Execute the comparison logic.
- Return the resulting object containing the differences.
Triggers
- compare nested objects and return missing keys
- find difference between two objects preserving structure
- javascript function to compare object keys
- get missing keys from nested object
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.