我有一个由几个单词组成的数组,正在寻找一个特定的单词。我当前的解决方案(如下所示)对于小型阵列非常适用。但是,如果此数组包含10,000个单词,那么我的解决方案将需要大量的内存和CPU资源,因为效率不够高。我如何才能使代码的性能更好,并且在JavaScript中为大型数组应占用更少的资源?
var words = ['apple', 'orange', 'ananas', 'banana', 'mango', 'lemon', 'tomato'];
function search (term) {
for (var i = 0, len = words.length; i < len; i++) {
if (words[i] === term) {
console.log(words[i] + ' is found at ' + i);
}
}
}
search('tomato');
用单词作为键预填充字典(对象)。然后查找仅仅是dict[term]
。
var words = ['apple', 'orange', 'ananas', 'banana', 'mango', 'lemon', 'tomato'];
var dict = {};
function prepopulate() {
words.forEach(function(word, i) { dict[word] = i; });
}
function search (term) {
if (term in dict) {
console.log(term + ' is found at ' + dict[term]);
}
}
prepopulate();
search('tomato');
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句