Message from JavaScript discussions
May 2017
— Because location = index * itemsize
"Hello" is 5 characters, and "Help" is 4. Therefore if traversing to "Hello" and searching for "Help" in the set, you can deduce from "Hello"'s metadata that a word after it shares 2 characters, and thus you know the probability of the next word being "Help" is 2/4. If that number is any lower than the sum of the shared characters and the characters of the input string, you know 100% that the next word, and all words after it, will definitely not match the input string
— Thus you can abandon that portion of the tree completely, eliminating however many words are related to 'Hello'
— Wait... should we perhaps lookup by length first?
— Since 'Hello" shares so many characters with "Help", 3/4, your deduction here will be spot-on until you get to the point where you have not constructively proven "Help" is not in the set as you have not seen the entire set, but you have posited a contradictory proof which states the number of possible matching characters is zero, and thus aids in the proof that "Help" is not in the set
— ["Hometown" (Next shares 3 chars)] -> ["Howdy" (No next word sharing any chars)]
— > "😂😂😂".split('').map(x => x.charCodeAt())
[ 55357, 56834, 55357, 56834, 55357, 56834 ]
— That's the kind of information in the linked list you would have to make these deductions
— Not sure how big typed arrays we would need
— Perfect
— What's the biggest value a single JS character can have?
— I was thinking it would help this as well