Javascript 按外部值对多维对象文字数组排序

Javascript 按外部值对多维对象文字数组排序,javascript,multidimensional-array,sorting,Javascript,Multidimensional Array,Sorting,我正在尝试为一个游戏im building制作一个自制的视线,这是一个基于网格的2D俯视棋盘游戏。棋盘上有一个二维数组中的div,这些div都是黑色的,如果玩家在一个走廊中,而走廊中也有一个二维数组中的对象,这些div将是透明的。走廊里有各种各样的障碍,我需要把它们考虑进去,这样如果div出现在球员所在的走廊里,就会停止透明 所以我有了一个想法,按照x,y值对给定走廊中的对象数组进行排序 corridors[i].sort( function(a) { if(a.

我正在尝试为一个游戏im building制作一个自制的视线,这是一个基于网格的2D俯视棋盘游戏。棋盘上有一个二维数组中的div,这些div都是黑色的,如果玩家在一个走廊中,而走廊中也有一个二维数组中的对象,这些div将是透明的。走廊里有各种各样的障碍,我需要把它们考虑进去,这样如果div出现在球员所在的走廊里,就会停止透明

所以我有了一个想法,按照x,y值对给定走廊中的对象数组进行排序

corridors[i].sort(
    function(a)
    {
        if(a.y > playerObj.position.y && a.x > playerObj.position.x) return 1;
        if(a.y < playerObj.position.y && a.x < playerObj.position.x) return -1;
        return 0;
    });
但这似乎不起作用。将divs背景色更改为透明仍然是从数组的第一个索引开始的。我希望它从球员在走廊中的位置开始,并像这样向外工作:

O只是一个平铺,p是玩家,X是刚刚透明的平铺

呜呜呜呜呜呜呜呜

呜呜呜呜呜呜呜呜

ooooooooxpxoooooo

ooooooooo xxpxooooo


但是为了使这个场景正常工作,我需要找到如何正确地对数组排序,我希望您能帮助我。我在网上看到的例子有参数a和b,所以不能使用外部变量吗?我是否应该将玩家的位置创建为一个新对象,并将其推送到数组中,然后对数组进行排序?

好的,我想我解决了这个问题。我只是简单地将排序函数存储在一个新数组中,然后使用它