From b74d2f26d525accd7f9ef29c65a9805ab53abb15 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..74d44f501 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.indexOf(item) === -1) { + result.push(item); } - } - return result; + + return result; + }, []); } /**