From e5370ac3d1ddaacb5e9ad2978182d7891ab6265b Mon Sep 17 00:00:00 2001 From: "Wei-Cheng Yeh (IID)" Date: Tue, 3 Oct 2023 10:43:47 +0800 Subject: [PATCH] perf(composeExercise.js): make hint revealing O(1) time * initialize hintBar with attrs hintState & hideState * hintBar.newHintState() * initialize this.hintState & this.hideState * hintBar.hintCharacter() * cache hintState into `this` * cache hideState into `this` * avoid string comparisons by accessing & modifying this.hideState instead --- composeExercise.js | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/composeExercise.js b/composeExercise.js index 4a008b7..b354e10 100644 --- a/composeExercise.js +++ b/composeExercise.js @@ -76,27 +76,35 @@ var respondWindow = { var visualBar = {node: document.getElementById('visual')}; var inputBar = document.getElementById('input'); var questCharacter = {node: document.getElementById('quest')}; -var hintBar = {node: document.getElementById('hint')}; +var hintBar = { + node: document.getElementById('hint'), + hintState: [], + hideState: [], +}; hintBar.newHintState = function() { var answerAlphabetLength = questCharacter.node.title.length; - var hintState = []; - for (var i=0, l=answerAlphabetLength; i