{"ScriptPreparationCode":"var primary =\r\n[\r\n {recordId:123, type: \u0022Primary\u0022 },\r\n {recordId:123, type: \u0022Primary\u0022 },\r\n {recordId:123, type: \u0022Primary\u0022 },\r\n {recordId:9393, type: \u0022Primary\u0022 },\r\n {recordId:9393, type: \u0022Primary\u0022 },\r\n {recordId:9393, type: \u0022Primary\u0022 },\r\n];\r\n\r\nvar secondary = [\r\n {recordId:123, type: \u0022Secondary\u0022 },\r\n {recordId:123, type: \u0022Secondary\u0022 },\r\n {recordId:9393, type: \u0022Secondary\u0022 },\r\n {recordId:9393, type: \u0022Secondary\u0022 },\r\n {recordId:9393, type: \u0022Secondary\u0022 },\r\n];","TestCases":[{"Name":"one map","Code":"const missingRecords = []\r\n\r\nconst occurences = primary.reduce((acc, val) =\u003E acc.set(val.recordId, 1 \u002B (acc.get(val.recordId) || 0)), new Map());\r\nsecondary.reduce((acc, val) =\u003E acc.set(val.recordId, (acc.get(val.recordId) || 0) - 1), occurences);\r\n\r\nfor (const [skey, svalue] of occurences.entries()) {\r\n if (svalue !== 0) {\r\n missingRecords.push(skey);\r\n }\r\n}","IsDeferred":false},{"Name":"two maps","Code":"\r\n\r\nconst missingRecords = []\r\n\r\nconst primaryOccurences = primary.reduce((acc, val) =\u003E acc.set(val.recordId, 1 \u002B (acc.get(val.recordId) || 0)), new Map());\r\nconst secondaryOccurences = secondary.reduce((acc, val) =\u003E acc.set(val.recordId, 1 \u002B (acc.get(val.recordId) || 0)), new Map());\r\n\r\n\r\nprimaryOccurences.forEach((value, key) =\u003E {\r\n for (const [skey, svalue] of secondaryOccurences.entries()) {\r\n if (skey === key \u0026\u0026 value !== svalue) {\r\n missingRecords.push(key);\r\n }\r\n }\r\n})","IsDeferred":false}]}