Javascript - 执行模拟时循环无法正常工作

莎拉·海兰

我正在尝试使用原型、对象和嵌套循环运行库检入/检出系统的模拟。我无法将伪代码正确集成到循环本身中,希望得到任何帮助。

//while loop or for loop for 90 days
      //For loop over catalog
         //forloop over patrons 
             //Check if available , if so check book out
             //If not available check book back in
                 //check checking back in check to see if book is overdue and if so add a fine
    //When down loop over patrons to see their fees

环形

for (var i = 0; i < 90; i++) {
        for (var j = 0; j < catalog.length; j++) {
            for (var k = 0; k < patrons.length; i++) {
                var fine = patrons[k].fine;
                if (catalog[k].Available) {
                    catalog[k].checkOut;
                } else {
                    catalog[k].checkIn;
                    patrons[k].read;
                }
                if (catalog[k].isOverdue) {
                    fine = fine + 5.00;
                }
            }
        }
        patrons[i].fine = fine;
    }

所有的代码

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;
};

var Author = function(firstName, lastName) {
    this.firstName = firstName;
    this.lastName = lastName;
};

var Patron = function(firstName, lastName, libCardNum, booksOut, fine) {
    this.firstName = firstName;
    this.lastName = lastName;
    this.libCardNum = libCardNum;
    this.booksOut = booksOut;
    this.fine = fine;
};

Book.prototype.checkOut = function() {
    this.Available = false;
    var temp = new Date(1000000000);
    var date = new Date() - temp;
    var res = new Date(date);
    this.checkoutDate = res;
};

Book.prototype.checkIn = function() {
    this.Available = true;
};

Book.prototype.isOverdue = function() {
    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;
};

Patron.prototype.read = function(book) {
    this.booksOut.add(book);
}

Patron.prototype.return = function(book) {
    this.booksOut.remove(this.booksOut.length);
}

var authors = [];
authors[0] = new Author("Auth", "One");
authors[1] = new Author("AutL", "Two");

var catalog = [];
catalog[0] = new Book('Bk1', true, new Date(2001, 1, 21), new Date(), 123456, authors);
catalog[1] = new Book('Bk2', true, new Date(2002, 2, 22), new Date(), 987656, authors);
catalog[2] = new Book('Bk3', true, new Date(2003, 3, 23), new Date(), 092673, authors);
catalog[3] = new Book('Bk4', true, new Date(2004, 4, 24), new Date(), 658342, authors);
catalog[4] = new Book('Bk5', true, new Date(2005, 5, 25), new Date(), 345678, authors);

var patrons = [];
patrons[0] = new Patron('Pat1', 'Wat', 1, catalog, 0.00);
patrons[1] = new Patron('Pat2', 'Wot', 1, catalog, 0.00);
patrons[2] = new Patron('Pat3', 'Wit', 1, catalog, 0.00);
patrons[3] = new Patron('Pat4', 'Wet', 1, catalog, 0.00);
patrons[4] = new Patron('Pat5', 'Wut', 1, catalog, 0.00);

//while loop or for loop for 90 days
      //For loop over catalog
         //forloop over patrons 
             //Check if available , if so check book out
             //If not available check book back in
                 //check checking back in check to see if book is overdue and if so add a fine
    //When down loop over patrons to see their fees

for (var i = 0; i < 90; i++) {
    for (var j = 0; j < catalog.length; j++) {
        for (var k = 0; k < patrons.length; i++) {
            var fine = patrons[k].fine;
            if (catalog[k].Available) {
                catalog[k].checkOut;
            } else {
                catalog[k].checkIn;
                patrons[k].read;
            }
            if (catalog[k].isOverdue) {
                fine = fine + 5.00;
            }
        }
    }
    patrons[i].fine = fine;
}

for (i = 0; i < patrons.length; i++) {
    console.log(patrons[i].firstName + " has checked out the following books:");
    for (j = 0; j < patrons[i].booksOut.length; j++) {
        console.log(patrons[i].booksOut[j].title);
    }
    console.log(patrons[i].firstName + " has fine amount: $" + patrons[i].fine);
}

我正在尝试编写一个循环来模拟 3 个月的结帐和签入。每天我都会遍历目录以及顾客数组中的每个人。如果读者当前已将图书签出,则我将其签入。如果未签出,则我通过读者阅读方法将其添加到图书的读者列表中。如果这本书逾期了,那么我会向归还它的赞助人罚款 5.00 美元。在 3 个月期限结束时,我必须展示每位顾客、他们目前已借出的书籍以及他们可能收到的任何罚款。

scraaappy

您的循环中有拼写错误(对于 var k ... i++)。看片段

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;
};

var Author = function(firstName, lastName) {
    this.firstName = firstName;
    this.lastName = lastName;
};

var Patron = function(firstName, lastName, libCardNum, booksOut, fine) {
    this.firstName = firstName;
    this.lastName = lastName;
    this.libCardNum = libCardNum;
    this.booksOut = booksOut;
    this.fine = fine;
};

Book.prototype.checkOut = function() {
    this.Available = false;
    var temp = new Date(1000000000);
    var date = new Date() - temp;
    var res = new Date(date);
    this.checkoutDate = res;
};

Book.prototype.checkIn = function() {
    this.Available = true;
};

Book.prototype.isOverdue = function() {
    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;
};

Patron.prototype.read = function(book) {
    this.booksOut.add(book);
}

Patron.prototype.return = function(book) {
    this.booksOut.remove(this.booksOut.length);
}

var authors = [];
authors[0] = new Author("Auth", "One");
authors[1] = new Author("AutL", "Two");

var catalog = [];
catalog[0] = new Book('Bk1', true, new Date(2001, 1, 21), new Date(), 123456, authors);
catalog[1] = new Book('Bk2', true, new Date(2002, 2, 22), new Date(), 987656, authors);
catalog[2] = new Book('Bk3', true, new Date(2003, 3, 23), new Date(), 092673, authors);
catalog[3] = new Book('Bk4', true, new Date(2004, 4, 24), new Date(), 658342, authors);
catalog[4] = new Book('Bk5', true, new Date(2005, 5, 25), new Date(), 345678, authors);

var patrons = [];
patrons[0] = new Patron('Pat1', 'Wat', 1, catalog, 0.00);
patrons[1] = new Patron('Pat2', 'Wot', 1, catalog, 0.00);
patrons[2] = new Patron('Pat3', 'Wit', 1, catalog, 0.00);
patrons[3] = new Patron('Pat4', 'Wet', 1, catalog, 0.00);
patrons[4] = new Patron('Pat5', 'Wut', 1, catalog, 0.00);

//while loop or for loop for 90 days
      //For loop over catalog
         //forloop over patrons 
             //Check if available , if so check book out
             //If not available check book back in
                 //check checking back in check to see if book is overdue and if so add a fine
    //When down loop over patrons to see their fees

for (var i = 0; i < 90; i++) {
    for (var j = 0; j < catalog.length; j++) {
        for (var k = 0; k < patrons.length; k++) {
            var fine = patrons[k].fine;
            if (catalog[k].Available) {
                catalog[k].checkOut;
            } else {
                catalog[k].checkIn;
                patrons[k].read;
            }
            if (catalog[k].isOverdue) {
                fine = fine + 5.00;
            }
             patrons[k].fine = fine;
        }
    }
   
}

for (i = 0; i < patrons.length; i++) {
    console.log(patrons[i].firstName + " has checked out the following books:");
    for (j = 0; j < patrons[i].booksOut.length; j++) {
        console.log(patrons[i].booksOut[j].title);
    }
    console.log(patrons[i].firstName + " has fine amount: $" + patrons[i].fine);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在JSP中执行while循环以执行javascript无法正常工作?

来自分类Dev

javascript / php for循环无法正常工作?

来自分类Dev

JavaScript While循环无法正常工作

来自分类Dev

JavaScript中的For循环无法正常工作

来自分类Dev

For循环在Javascript函数中无法正常工作

来自分类Dev

JavaScript在for循环后无法正常工作

来自分类Dev

使用innerHTML时JavaScript无法正常工作

来自分类Dev

使用innerHTML时JavaScript无法正常工作

来自分类Dev

更新面板时javascript无法正常工作

来自分类Dev

JavaScript无法正常工作

来自分类Dev

.then()JavaScript无法正常工作

来自分类Dev

Javascript!==“”无法正常工作

来自分类Dev

Javascript :: this.value在for循环内无法正常工作吗?

来自分类Dev

Continue语句在JavaScript for循环中无法正常工作

来自分类Dev

Javascript :: this.value在for循环内无法正常工作吗?

来自分类Dev

为什么正向遍历for循环在JavaScript中无法正常工作

来自分类Dev

点击时的Javascript事件监听器无法正常工作

来自分类Dev

停止移动鼠标时,JavaScript mousemove无法正常工作

来自分类Dev

在HTML中更改div位置时,JavaScript无法正常工作

来自分类Dev

Javascript classList无法正常工作

来自分类Dev

javascript onclick无法正常工作?

来自分类Dev

javaScript吊起无法正常工作

来自分类Dev

JavaScript clearTimeout无法正常工作

来自分类Dev

JavaScript .replace()无法正常工作

来自分类Dev

JavaScript继承无法正常工作

来自分类Dev

在Javascript中,“ this”无法正常工作

来自分类Dev

.replace javascript无法正常工作

来自分类Dev

javascript addEventListener无法正常工作

来自分类Dev

JavaScript比较无法正常工作

Related 相关文章

热门标签

归档