オブジェクトのすべての配列をループせずに、配列からオブジェクトを削除して、現在の配列要素に削除するアイテムの ID があるかどうかを確認できるようにしたいと考えています。
JavaScript:
function CBooks() {
this.BooksArray = [];
this.AddBook = function(divID, sContents) {
this.BooksArray.push(new CBook());
pos = this.BooksArray.length - 1;
this.BooksArray[pos].ArrayID = pos;
this.BooksArray[pos].DivID = divID;
this.BooksArray[pos].Contents = sContents;
}
this.DelBook = function(divID) {
this.BooksArray.splice(...);
}
}
function CBook() {
this.ArrayID = 0;
this.DivID = "";
this.Contents = "";
}
次のようにオブジェクトを初期化します。
var oBooks = new CBooks();
次のような新しい本を追加します。
oBooks.AddBook("divBook1", "blahblahblah");
//Creation of the div here
oBooks.AddBook("divBook2", "blehblehbleh");
//Creation of the div here
これで、ユーザーは各本を表示している div の X ボタンをクリックして、本を削除できるようになりました。したがって、X ボタンには以下が含まれます。
onclick=oBooks.DelBook(this.id);
明らかに、DelBook(divID)関数では、 BooksArrayの長さをループして、divID がパラメーターと等しい場合は各要素を確認し、その時点でスプライスすることができますが、ループを避けたいと思います。
それを行う方法はありますか?
前もって感謝します