UNPKG

1.71 kBSource Map (JSON)View Raw
1{"version":3,"file":"diff.js","sourceRoot":"","sources":["../../../src/geometry/util/diff.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,SAAgB,IAAI,CAAC,OAA4B,EAAE,IAAc;IAC/D,IAAM,KAAK,GAAG,EAAE,CAAC;IACjB,IAAM,OAAO,GAAG,EAAE,CAAC;IACnB,IAAM,OAAO,GAAG,EAAE,CAAC;IACnB,IAAM,WAAW,GAAG,IAAI,GAAG,EAAmB,CAAC;IAE/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACpC,IAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,OAAO,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;YAC/B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrB,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;KAC5B;IAED,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG;QAC/B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,KAAK,OAAA;QACL,OAAO,SAAA;QACP,OAAO,SAAA;KACR,CAAC;AACJ,CAAC;AAtBD,oBAsBC","sourcesContent":["/**\n * 对比当前元素和之前的元素,返回 added, updated, removed\n * @param keyItem 之前的元素的,按照 key-item 的 object 的形式存储\n * @param keys 现在的元素,按照 array 的形式存储\n * @returns 由 added, updated, removed array 构成的 object\n */\nexport function diff(keyItem: Record<string, any>, keys: string[]) {\n const added = [];\n const updated = [];\n const removed = [];\n const keyIncluded = new Map<string, boolean>();\n\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (keyItem[key]) updated.push(key);\n else added.push(key);\n keyIncluded.set(key, true);\n }\n\n Object.keys(keyItem).forEach((key) => {\n if (!keyIncluded.has(key)) removed.push(key);\n });\n\n return {\n added,\n updated,\n removed,\n };\n}\n"]}
\No newline at end of file