From 17f0d399a27ef464f0b03913249ba337c3f5eb69 Mon Sep 17 00:00:00 2001 From: kurkle Date: Mon, 30 Dec 2019 01:22:40 +0200 Subject: [PATCH 1/4] Optimize arrayUnique --- src/scales/scale.time.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/scales/scale.time.js b/src/scales/scale.time.js index f1e553465b0..d2c2f0ae61d 100644 --- a/src/scales/scale.time.js +++ b/src/scales/scale.time.js @@ -66,19 +66,20 @@ function sorter(a, b) { } function arrayUnique(items) { - const hash = {}; - const out = []; + const map = new Map(); let i, ilen, item; for (i = 0, ilen = items.length; i < ilen; ++i) { item = items[i]; - if (!hash[item]) { - hash[item] = true; - out.push(item); + if (!map.has(item)) { + map.set(item, true); } } + if (map.size === ilen) { + return items; + } - return out; + return Array.from(map.keys()); } /** From e68ffbcedb300ca2931c8c80ab9f20f0a7af7b67 Mon Sep 17 00:00:00 2001 From: kurkle Date: Mon, 30 Dec 2019 08:25:17 +0200 Subject: [PATCH 2/4] Set instead of Map --- src/scales/scale.time.js | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/scales/scale.time.js b/src/scales/scale.time.js index d2c2f0ae61d..2d96c099db6 100644 --- a/src/scales/scale.time.js +++ b/src/scales/scale.time.js @@ -66,20 +66,18 @@ function sorter(a, b) { } function arrayUnique(items) { - const map = new Map(); + const set = new Set(); let i, ilen, item; for (i = 0, ilen = items.length; i < ilen; ++i) { item = items[i]; - if (!map.has(item)) { - map.set(item, true); - } + set.add(item, true); } - if (map.size === ilen) { + if (set.size === ilen) { return items; } - return Array.from(map.keys()); + return Array.from(set); } /** From d70f683e3ef2bbae2728720e24599fa40cc2e558 Mon Sep 17 00:00:00 2001 From: kurkle Date: Mon, 30 Dec 2019 10:19:24 +0200 Subject: [PATCH 3/4] remove extra arg --- src/scales/scale.time.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/scales/scale.time.js b/src/scales/scale.time.js index 2d96c099db6..caa071abb01 100644 --- a/src/scales/scale.time.js +++ b/src/scales/scale.time.js @@ -67,12 +67,12 @@ function sorter(a, b) { function arrayUnique(items) { const set = new Set(); - let i, ilen, item; + let i, ilen; for (i = 0, ilen = items.length; i < ilen; ++i) { - item = items[i]; - set.add(item, true); + set.add(items[i]); } + if (set.size === ilen) { return items; } From a39e885394a7ebc90528cc5fad0ec76f61c9c21d Mon Sep 17 00:00:00 2001 From: kurkle Date: Tue, 31 Dec 2019 17:21:29 +0200 Subject: [PATCH 4/4] Spread --- src/scales/scale.time.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scales/scale.time.js b/src/scales/scale.time.js index caa071abb01..07d0ceacbfb 100644 --- a/src/scales/scale.time.js +++ b/src/scales/scale.time.js @@ -77,7 +77,7 @@ function arrayUnique(items) { return items; } - return Array.from(set); + return [...set]; } /**