Javascript如何查找数组中对象的位置

标签 javascript arrays object

这是我的第一个问题,如果我有什么问题,请原谅我。

我有一个组织为对象的坐标数组,我需要查找并删除某个对象。我一直试图通过数组中的特定 x 和 y 坐标来获取对象的位置。

这是我到达的地方:

door_array = [{x:3, y:4},{x: 12,y: 12}, {x: 15,y:15}];

function remove_door(dx,dy, array) 
{
    var obj = {x:dx,y:dy};  
    var a = door_array.indexOf(obj); //this part doesn't work
    door_array.slice(a,1)   

}

当我尝试调用该函数时,它似乎将数组读取为 [object,object,object],并返回 -1。

问题是,如何通过特定对象的坐标找到其位置,以便将其删除?

最佳答案

问题是 obj 是与列表中的对象不同的对象。您应该循环遍历列表中的对象,直到找到所需的对象。例如。

door_array = [{x:3, y:4},{x: 12,y: 12}, {x: 15,y:15}];

function remove_door(dx,dy, array) 
{
    var index = -1;
    for(var i = 0; i < array.length; i++)
    {
        if(array[i].x == dx && array[i].y == dy)
        {
            index = i;
            break;
        }
    }
    if(index != -1)
    {
        array.slice(index,1);
    } 
    return array;
}

完成操作后,您应该返回数组。像这样调用:

door_array = remove_door(x, y, door_array);

关于Javascript如何查找数组中对象的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26871382/

相关文章:

python - numpy 中概率被忽略

objective-c - iOS:接受多个对象类型作为参数(是)对象?

javascript - 循环多级对象

javascript - 在 Objective-C 中创建 Javascript 函数

javascript - 下拉复选框中的文本对齐方式

javascript - 如何在新函数中使用带有 OnChange 的文本框中的值?

javascript - 用户离开字段后立即显示 AngularJS Bootstrap 工具提示以进行客户端验证

c++ - 将指针数组传递给另一个类

javascript - 从输入创建 JSON

java - 创建 HashMap 数组,同时指定 HashMap<String, Integer>