私は割り当てのこの部分に問題があります。ほとんどのコードはコード化されていますが、この最後の部分の実装に問題があります。オブジェクト出力をJavascriptで表示
チェックアウトとチェックインを3か月間シミュレートするループを作成します。毎日、カタログやパトロンの配列のすべての人を繰り返します。顧客が現在書籍をチェックアウトしている場合は、チェックインします。チェックアウトされていない場合は、顧客の読書方法を介して書籍の顧客リストに追加します。本が期限切れの場合は、それを返す利用者に$ 5.00の罰金を加えます。 3ヶ月の期間の終わりに、それぞれの利用者、彼らが現在チェックアウトしている書籍、および彼らが有するかもしれない罰金を表示します。ここで
は私が持っているコードは、これまでです:
//Author class
var Author = function(firstName, lastName) {
this.firstName = firstName;
this.lastName = lastName;
};
var Book = function(title, Available, publicationDate, checkoutDate, callNumber, Authors) {
this.title = title;
this.Available = Available;
this.publicationDate = publicationDate;
this.checkoutDate = checkoutDate;
this.callNumber = callNumber;
this.Authors = Authors;
};
Book.prototype.checkOut = function() {
this.Available = false;
var temp = new Date(1000000000);
var d = new Date() - temp;
var res = new Date(d);
this.checkoutDate = res;
};
Book.prototype.isOverdue = function() {
//Get 1 day in milliseconds
var singleDay = 1000 * 60 * 60 * 24;
var todayDate = new Date().getTime();
var difference = todayDate - this.checkoutDate.getTime();
if (Math.round(difference/singleDay) >= 14) {
return true;
}
return false;
};
var Patron = function(firstName, lastName, libraryCardNumber, booksOut, fine) {
this.firstName = firstName;
this.lastName = lastName;
this.libraryCardNumber = libraryCardNumber;
this.booksOut = booksOut;
this.fine = fine;
};
Patron.prototype.read = function(book) {
this.booksOut.add(book);
}
Patron.prototype.read = function(book) {
this.booksOut.remove(this.booksOut.length);
}
//creating author objects
var authors = []
authors[0] = new Author("Neil", "Armstrong");
authors[1] = new Author("Hard", "Popeye");
var mybooks = []
mybooks[0] = new Book('gravity', true, new Date(2000, 5, 20), new Date(), 10, authors);
mybooks[1] = new Book('munro', true, new Date(2000, 5, 20), new Date(), 11, authors);
mybooks[2] = new Book('kohli', true, new Date(2000, 5, 20), new Date(), 12, authors);
mybooks[3] = new Book('sachin', true, new Date(2000, 5, 20), new Date(), 13, authors);
mybooks[4] = new Book('sehwag', true, new Date(2000, 5, 20), new Date(), 14, authors);
var patrons = []
patrons[0] = new Patron('master', 'jumbo', 1, mybooks, 0.00);
patrons[1] = new Patron('kyle', 'munro', 1, mybooks, 0.00);
patrons[2] = new Patron('master', 'jumbo2', 1, mybooks, 0.00);
patrons[3] = new Patron('master', 'jumbo3', 1, mybooks, 0.00);
patrons[4] = new Patron('master', 'jumbo4', 1, mybooks, 0.00);
var j = 0;
while (j < patrons.length) {
var books = patrons[j].booksOut;
var fine = patrons[j].fine;
for (var i = 0; i < books.length; i++) {
if (books[i].isOverdue()) {
fine = fine + 5.00;
}
}
patrons[j].fine = fine;
console.log(patrons[0]);
}
問題は、それが無限に何度も何度も同じオブジェクトを出力しています。どうして私はそれを解決できますか?
だから、正確に問題何で、どのようにあなたはそれを試してみて、解決するために行っていますか? –
私は、各パトロンの名前、チェックアウトした書籍、罰金を表示するには出力が必要ですが、正しく動作するようにはできませんでした。 – dungo
あなたが授業で学んだことに基づいて、どのように出力するのですか? 'console.log'? 'document.write'?おそらく、要素をクエリし、その内容を更新するでしょう。出力は複数の形式で出力され、出力先はあなたとあなたの先生の表示方法によって異なります。 –