javascript - 优化 for 循环,避免无用的查找

标签 javascript for-loop

我有以下 JavaScript 代码:

    var postcodes = [['BD1',8],['BD2',20],['BD7',30]];

    var rangeColours = [['red',10],['black',20],['blue',30]];

    var postcodeColours = [];

    for(var i=0; i<postcodes.length; i++) {
        var match = 0;
        for(var x=0; x<rangeColours.length; x++) {
            if(postcodes[i][1] <= rangeColours[x][1] && match == 0){
                postcodeColours.push([postcodes[i][0],rangeColours[x][0]]);
                match = 1;
            } 
        }   
    }

代码的输出是:(顺便说一下,这没问题)

    [BD1,red][BD2,black][BD7,blue]

我想知道是否有一种方法可以使代码更高效,尤其是在减少第二个 for 循环中出现的浪费查找方面?目前,我正在使用“匹配”变量,如果邮政编码数组元素的值小于 rangeColours 数组元素的值,我将其设置为 1,以确保推送不会对每个邮政编码数组元素重复,是有更优雅的方法吗?

非常感谢

最佳答案

如果你真的想优化查找,你可以通过将其存储在本地

for(var i=0; i<postcodes.length; i++) {
    var postcodeCurrent = postcodes[i];
    var match = 0;
    for(var x=0; x<rangeColours.length; x++) {
        var rangeColourCurrent = rangeColours[x];
        if(postcodesCurrent[1] <= rangeColoursCurrent[1] && match == 0){
            postcodeColours.push([postcodesCurrent[0],rangeColoursCurrent[0]]);
            match = 1;
        } 
    }   
}

不过,我不确定这是否会对性能产生显着影响。感觉像是微优化。

关于javascript - 优化 for 循环,避免无用的查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10506037/

相关文章:

java - 下拉值

r - 使用 for 循环在 R 中创建多个具有不同图例比例的气泡图

for-loop - 从 go 中的 tcp 连接读取数据是否需要 for 循环?

Java 8 使用流重写一个复杂的 for 循环

javascript - 添加动画以更改背景图像幻灯片

javascript - 动态创建要在 $.css() 方法中使用的 javascript/jQuery 对象

php - 第二个 AJAX 调用卸载第一个的结果

Javascript两个 "For"循环循环从3个数组中获取数据

c++ - 多变量for循环

javascript - 使用 JavaScript 执行操作系统命令?