1

这是我的对象:

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 是否等于数组中的任何平面,如果不是,则执行操作。

我还是个新手,如果这个问题听起来很愚蠢,我很抱歉。

4

2 回答 2

2

遍历数组并返回一个布尔值,指示是否找到了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;
    });
}
于 2013-02-09T16:48:47.017 回答
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
    }
}
于 2013-02-09T16:48:19.143 回答