我有一个数组跟踪这样的javascript对象:
var myArray = [];
对象看起来像这样:
Main.prototype.myObject = function (x, y) {
this.x = x;
this.y = y;
this.moveObject = function () {
// Change x, y coordinates
if (someEvent) {
// Delete myself
// deleteObject();
}
};
this.deleteObject = function () {
// Delete code
}
};
然后将对象推入数组中:
myArray.push(new main.myObject(this.x, this.y));
现在,我有没有办法用this
删除对象的特定实例而不知道myArray
中的索引?
我宁愿保持for循环清洁并在现有的moveObject()
函数中进行删除。
答案 0 :(得分:4)
是的,您可以使用.indexOf
// find the index in the array (-1 means not found):
var index = myArray.indexOf(myObj);
// remove the element at that index, if found:
if(index > -1) myArray.splice(index, 1);
答案 1 :(得分:2)
也许尝试类似的事情:
this.deleteObject = function() {
var idx = myArray.indexOf(this);
if (idx >= 0) {
myArray.splice(idx, 1);
}
}