在数组中查找多个对象值

时间:2013-02-09 16:44:48

标签: javascript

这是我的目标:

function Plane (x,z) {  
    this.x = x;
    this.z = z;
}

var plane = new Plane(0,50000);

我有一个包含这些对象的数组:

planesArray.push(plane);

我有一个点对象:

function Point (x,z) {  
    this.x = x;
    this.z = z;
}

var point = new Point(0,-50000);

我需要检查planesArray中是否存在具有特定点的对象,以检查该点的x和y值是否等于数组中的任何平面,如果不是,则检查执行一项行动。

我仍然是新手,如果这个问题听起来很蠢,我道歉。

2 个答案:

答案 0 :(得分:1)

循环遍历数组并返回一个布尔值,指示是否找到了具有这些属性的Point对象。此示例使用.some方法执行此操作。

var found = planesArray.some(function(plane) {
    return plane.x === x && plane.y === y;
});

if (found) {

}

更新:这是与函数相同的代码。

function found(list, x, y) {
    return list.some(function(plane) {
        return plane.x === x && plane.y === y;
    });
}

答案 1 :(得分:0)

var point = new Point(0,-50000);
for(var i = 0; i < planesArray.length; i++) {
    var plane = planesArray[i];
    if(plane.x != point.x || plane.z != point.z) {
        //perform action
        //break; //optional, depending on whether you want to perform the action for all planes, or just one
    }
}