我有一个坐标点数组,我用它来运行动画,并希望得到一个图像的当前位置,并确定该位置的数组索引。
var pointArray = [{x:70, y:500},
{x:120, y:500},
{x:150, y:500},
{x:178, y:488},
{x:193, y:465},
{x:205, y:440},
{x:228, y:418},
{x:255, y:408},
{x:286, y:405},
{x:317, y:410},
{x:345, y:422},
{x:372, y:438}];
pointArray[indexOf(player1.x)]
或pointArray[indexOf("{x:70, y:500}")]
都返回 -1 ,这是找不到搜索字词的默认值。搜索多维数组的正确语法是什么?
注意:上面的点数组是删节版本,但在完整版本中,坐标确实有重复的x或y值,因此我需要做的不仅仅是搜索2个坐标值中的1个。
答案 0 :(得分:1)
你必须进行自定义搜索,因为你的新对象(indexOf()
的参数)与数组中的对象不同(除非你提到你正在尝试的那个)搜索)。
一个简单的方法就是......
var match = {x:70, y:500};
for (var i = 0; i < pointArray.length; i++) {
if (match.x == pointArray[i].x && match.y == pointArray[i].y) {
break;
}
}
现在,i
将是找到结果的索引。您需要处理无法找到的情况。