图书管理小案例

实现的功能:
图书管理->查找 增加 删除 修改
代码实现:

   // 1.提供一些数组,数组中存放一些书
var books = [
    {name : '三国演义',author : '罗贯中'},
    {name : '水浒传',author : '施耐庵'},
    {name : '西游记',author : '吴承恩'},
    {name : '红楼梦',author : '曹雪芹'}
]

// 2.查找
for (var i = 0; i < books.length; i++) {
    var obj = books[i];
    // 判断
    if(obj.name == '三国演义'){
        console.log(obj);
    }
}


// 3.添加
books.push({name:'悟空传',author : '今何在'});
console.log(books);

// 4.修改
for (var i = 0; i < books.length; i++) {
    var obj = books[i];

    if(obj.name == '红楼梦'){
        obj.author = '曹操';
    }
}

console.log(books);

// 5.删除
for (var i = 0; i < books.length; i++) {
    var obj = books[i];
    if(obj.name == '西游记'){
        // splice:从index位置开始删除几个元素
        books.splice(i,1);
    }
}
console.log(books);

函数封装:

// 1.提供一个构造函数
function BookManger(books) {
    // this = obj;
//        this.books = null;
    this._init(books);
}

// 2.设置原型对象
BookManger.prototype = {
    constructor : BookManger,
    // 提供一个初始化的方法
    _init : function (books) {
        this.books = books || [];
    },
    getBookByName : function (name) {

        for (var i = 0; i < this.books.length; i++) {
            var obj = this.books[i];
            // 判断
            if(obj.name == name){
                return obj;
            }
        }

        throw 'Sorry!没有找到这本书!';
},

    addBook : function (book) {
    this.books.push(book);
},
    updateBookByName : function (name,author) {
        // 1.查找 (在原型方法中调用原型方法要用 this)
        var book = this.getBookByName(name);
        // 2.修改
        book.author = author;
},
    deleteBook : function (name) {
    // 1.查找到这本书
    var book = this.getBookByName(name);
    // 2.获取这本书的索引
    var index = this.books.indexOf(book);
    // 3.删除
    this.books.splice(index,1);
}
}

你可能感兴趣的:(图书管理小案例)