From cdc6e760fcbd7583d1c8bc5ba8cb5615f228b492 Mon Sep 17 00:00:00 2001 From: lightrabbit Date: Sat, 18 Dec 2021 22:18:44 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=E6=95=B0=E7=BB=84?= =?UTF-8?q?=E5=8E=BB=E9=87=8D=E7=9A=84=E6=80=A7=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/ArrayEx.js | 16 ++++++---------- ...1\245\345\205\250\345\256\236\347\216\260.js" | 2 +- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/lib/ArrayEx.js b/lib/ArrayEx.js index 016627c..cf6000c 100644 --- a/lib/ArrayEx.js +++ b/lib/ArrayEx.js @@ -1,17 +1,13 @@ exports.多重笛卡尔积 = arr => arr.reduce((as, bs) => as.map(a => bs.map(b => [...a, b])).flat(), [[]]) -exports.数组去重 = (判别式, 数组) => { - var 包含 = (判别式, 项, 数组) => { - for (var i = 0; i < 数组.length; i++) { - if (判别式(数组[i], 项)) - return true - } - return false - } - +exports.数组去重 = (迭代器, 数组) => { + var s = new Set() var r = [] for (var i = 0; i < 数组.length; i++) { - if (!包含(判别式, 数组[i], r)) + var key = 迭代器(数组[i]) + if (!s.has(key)) { + s.add(key) r.push(数组[i]) + } } return r } diff --git "a/\350\241\245\345\205\250\345\256\236\347\216\260.js" "b/\350\241\245\345\205\250\345\256\236\347\216\260.js" index de44a87..278bac6 100755 --- "a/\350\241\245\345\205\250\345\256\236\347\216\260.js" +++ "b/\350\241\245\345\205\250\345\256\236\347\216\260.js" @@ -105,7 +105,7 @@ async function provideCompletionItems(document, position, token, context) { } } - 补全项 = 数组去重((a, b) => a.label == b.label, 补全项) + 补全项 = 数组去重(a => a.label, 补全项) // 过滤下面的部分 // 1 不包含中文的关键词没必要加拼音,因此过滤 // 2 现在正在输入的字段不需要加入补全项 -- Gitee