From caad8f6ea9d58e22403aa3c2115117875860744e Mon Sep 17 00:00:00 2001 From: Jo Wroten Date: Tue, 9 Jul 2019 20:34:40 +0000 Subject: [PATCH] =?UTF-8?q?Update=20Posts=20=E2=80=9Cusing-js-sets-to-find?= =?UTF-8?q?-elements=E2=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../posts/using-js-sets-to-find-elements.md | 21 +------------------ 1 file changed, 1 insertion(+), 20 deletions(-) diff --git a/content/posts/using-js-sets-to-find-elements.md b/content/posts/using-js-sets-to-find-elements.md index 49ca705..2b5bf2b 100644 --- a/content/posts/using-js-sets-to-find-elements.md +++ b/content/posts/using-js-sets-to-find-elements.md @@ -5,26 +5,7 @@ tags: - Tech description: >- JS's `new Set()` can be the new Hash table optimization for reducing nested - loops. - - - ```js - - // Example Data - - let hugeArray = [...Array(10000).keys()].map(id => { return {id}; }); // [{id: - 0}, ..., {id: 9999}] - - let needles = [1010, 2020, 3030, 4040, 5050, 6060, 7070, 8080, 9090]; - - - // Finding matching elements - - let needlesSet = new Set(needles); - - let matches = hugeArray.filter(obj => needlesSet.has(obj.id)); - - ``` + loops. So I've put together a little code snippet to show this in practice. --- Functionally for one check, this is identical to checking the `.indexOf()` or `.includes()` of an Array. However, in cases where you're filtering a large array down to match a list of ID's, for example, the nested looping can result in a performance hit.