1
var searchText = document.getElementById("textSearch").value.toLowerCase();
if(searchText.length > 0) {
    for (var i = 1; i < 114; i++) {
        if(names[i].toLowerCase().indexOf(searchText) != -1) {
        someDiv[i].style.display = "block";
        } else {
        someDiv[i].style.display = "none";
        }
    }
}

我将进行 3 次搜索。它们的大小将是 114、195 和 87。所以我猜循环运行的数量相当可观。我的问题是,我是否应该编写更多代码以使其“保存”显示的 div 和隐藏的 div?由于我的函数是onKeyUp,我觉得如果一个人写5个字符运行同一个循环600次是毫无意义的,会在短时间内使用太多资源吗?

所以问题是,做类似的事情是否值得

searchArray = [];
if true {
searchArray.push( i );
}

这样我就可以记录隐藏的那些,然后在下一个字符输入时让我们说'if(searchText.length === 2)'让它通过我们之前创建的数组中只有多少个字符的循环?所以说有 10 个结果,它只会循环 10 次而不是 114 次。值得吗?可能必须在数组中创建一个数组,以便记录每个附加字符的结果。我看到了一个jsperf,浏览器每秒运行indexof数百万次,但我仍然感到不安。你们有什么感想?

4

0 回答 0