From 65696d2c837b5e84351cdce2294fdfb92e7f7ec2 Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Wed, 22 Apr 2020 10:30:13 +0200
Subject: [PATCH] Fix arraysAreEqual()

---
 src/app/util.ts | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/src/app/util.ts b/src/app/util.ts
index cfc9ca3af..704320407 100644
--- a/src/app/util.ts
+++ b/src/app/util.ts
@@ -163,15 +163,17 @@ export function generateValuesCombination(
 }
 
 export function arraysAreEqual(arrayA: any[], arrayB: any[], property?: string, sort = false): boolean {
+    let aA: any[] = JSON.parse(JSON.stringify(arrayA)); // array copy
+    let aB: any[] = JSON.parse(JSON.stringify(arrayB)); // array copy
     if (sort) {
-        arrayA.sort((a, b) => a-b);
-        arrayB.sort((a, b) => a-b);
+        aA.sort((a, b) => a-b);
+        aB.sort((a, b) => a-b);
     }
     let equal = true;
-    if (arrayA.length === arrayB.length) {
-        for (let i=0; i < arrayA.length; i++) {
-            const eA = arrayA[i];
-            const eB = arrayB[i];
+    if (aA.length === aB.length) {
+        for (let i=0; i < aA.length; i++) {
+            const eA = aA[i];
+            const eB = aB[i];
             if (property === undefined) {
                 equal = equal && (eA === eB);
             } else {
-- 
GitLab