From cd84fe809a52487cbd319f4b501a6134aec320b6 Mon Sep 17 00:00:00 2001 From: Izel Nakri Date: Wed, 6 Jul 2022 01:44:17 +0200 Subject: [PATCH] Core: refactor diff to do less slow mutations --- src/core/utilities.js | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/src/core/utilities.js b/src/core/utilities.js index 715311b82..51db63469 100644 --- a/src/core/utilities.js +++ b/src/core/utilities.js @@ -43,18 +43,13 @@ export const performance = { // Returns a new Array with the elements that are in a but not in b export function diff (a, b) { - const result = a.slice(); - - for (let i = 0; i < result.length; i++) { - for (let j = 0; j < b.length; j++) { - if (result[i] === b[j]) { - result.splice(i, 1); - i--; - break; - } + return a.reduce((result, item) => { + if (!b.includes(item)) { + result.push(item); } - } - return result; + + return result; + }, []); } /**