js实现列表

列表

列表是一种最自然的数据组织方式。上一章已经介绍如何使用 List 类将数据组织成一个列
表。如果数据存储的顺序不重要,也不必对数据进行查找,那么列表就是一种再好不过的
数据结构。

var List = function () {
    this.pos = 0;
    this.dateStore = [];
    this.listSize = 0;
}

List.prototype = {
    clear: function () {
        delete this.dateStore;
        this.dateStore = [];
        this.pos = [];
        this.listSize = 0;
    },
    //查找一个元素
    find: function (element) {
        for (let index = 0; index < this.dateStore.length; index++) {
            if (this.dateStore[index] == element) {
                return index;
            }
        }
        return -1;
    },
    //移除指定的元素
    remove: function (element) {
        var index = this.find(element);
        if (index > -1) {
            this.dateStore.splice(index, 1);
            this.listSize--;
            return true;
        } else {
            return false;
        }
    },
    //转化为字符串
    roString: function () {
        return this.dateStore;
    },
    //插入元素
    insert: function (element, after) {
        var index = this.find(after);
        if (index > -1) {
            this.dateStore.splice(index + 1, 0, element);
            this.listSize++;
            return true;
        } else {
            return false;
        }
    },
    //向列表中添加元素
    append: function (element) {
        this.dateStore[this.listSize++] = element;
    },
    //访问第一个元素
    front: function () {
        this.pos = 0;
    },
    end: function () {
        this.pos = this.listSize - 1;
    },
    prev: function () {
        if (this.pos > 0) {
            this.pos--;
        }
    },
    next: function () {
        if (this.pos < this.listSize - 1) {
            this.pos++;
        }
    },
    lengths: function () {
        return this.listSize;
    },
    currentPos: function () {
        return this.pos;
    },
    moveTo: function (position) {
        this.pos = position;
    },
    //判断给定的值是否在列表中
    contents: function (element) {
        for (let index = 0; index < this.dateStore.length; index++) {
            if (this.dateStore[index] == element) {
                return true;
            }
        }
        return false;
    },
    //
    getElement: function () {
        return this.dateStore[this.pos];
    },
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值