首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >带条件的Javascript foreach

带条件的Javascript foreach
EN

Stack Overflow用户
提问于 2013-11-17 23:31:42
回答 1查看 14.9K关注 0票数 7

你可以在这里看到我的代码:

代码语言:javascript
运行
复制
this.tiles.forEach ( function($tile)
    {
            $tile.content.x = ( $tile.posY - $tile.posX ) * ($tile.map.tilesWidth/2) + ($tile.offsetX + $tile.map.offsetX);
            $tile.content.y = ( $tile.posY + $tile.posX ) * ($tile.map.tilesHeight/2) + ($tile.offsetY + $tile.map.offsetY);

            $tile.content.tile = $tile;
    });

因此,对于我的数组tiles中的每个块,我都做了一些计算。

我的数组中的每一项都有一个属性posXposY

我这里的问题是,如果我的数组中有很多瓦片,这个foreach需要很长时间才能执行。

我需要添加一个条件,并对每个posX在Xmin和Xmax之间的磁贴执行此操作,对于posY也是如此。

我怎样才能做到尽可能简单呢?为了节省最大可能的资源..谢谢!

在我的数组中添加一个if条件不是一个好的解决方案,因为foreach仍然会遍历整个数组。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-17 23:35:47

您可以使用filter方法:

代码语言:javascript
运行
复制
this.tiles
    .filter ( function($tile)
    {
            return $tile.posX <= Xmin && $tile.posX >= Xmax && 
                   $tile.posY <= Ymin && $tile.posY >= Ymax;
    })
    .forEach ( function($tile)
    {
            $tile.content.x = ( $tile.posY - $tile.posX ) * ($tile.map.tilesWidth/2) + ($tile.offsetX + $tile.map.offsetX);
            $tile.content.y = ( $tile.posY + $tile.posX ) * ($tile.map.tilesHeight/2) + ($tile.offsetY + $tile.map.offsetY);

            $tile.content.tile = $tile;
    });

但是一个简单的for-loop会更有效:

代码语言:javascript
运行
复制
for (var i = 0; i < this.tiles.length; i++)
{
    var $tile = this.tiles[i];
    if ($tile.posX <= Xmin && $tile.posX >= Xmax && 
        $tile.posY <= Ymin && $tile.posY >= Ymax)
    {
        $tile.content.x = ( $tile.posY - $tile.posX ) * ($tile.map.tilesWidth/2) + ($tile.offsetX + $tile.map.offsetX);
        $tile.content.y = ( $tile.posY + $tile.posX ) * ($tile.map.tilesHeight/2) + ($tile.offsetY + $tile.map.offsetY);

        $tile.content.tile = $tile;
    }
}
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20032509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档