數據結構於JS也能夠成爲CP(二)列表

Hello小夥伴們~上次分享有小夥伴在後臺留言說程序就是一個數據結構,怎麼說呢,我以爲這是片面的,在生產中,咱們每每會盡可能避免在前端寫業務邏輯,由於有些不安全,並且也比較影響性能,確實離不開數據結構,可是呢也不能徹底說這兩者相同啦~兔妞是這樣理解的,若是理解的有問題還請後臺留言,幫助改正哦~閒話很少說,開始今天的列表吧~css

列表前端

不知道你們有沒有習慣作什麼以前列一個to do list,反正列表是充斥在兔妞生活中的各處,購物列表、待辦列表。。。咱們就來詳細介紹一下列表這個數據結構吧!安全


1) 列表是什麼呢?微信

列表是一組有序的數據。每一個列表中的數據項稱爲元素。JS中,列表中的元素能夠是任何數據類型,列表中能夠保存多少元素並無事先設定,實際使用時元素的數量受到程序內存的限制。列表甚至也能夠是空的。數據結構


2)定義列表類app

function list(){ this.listSize=0; this.pos=0; this.dataStore=[]; this.clear=clear; this.find=find; this.toString=toString; this.insert=insert; this.append=append; this.remove=remove; this.front=front; this.end=end; this.prev=prev; this.next=next; this.length=length; this.currPos=currPos; this.moveTo=moveTo; this.getElement=getElement; this.contains=contains;}
function append(ele){ this.dataStore[this.listSize++]=ele;}function find(element) { for (var i = 0; i < this.dataStore.length; ++i) { if (this.dataStore[i] == element) { return i; } } return -1; }function remove(element) { var foundAt = this.find(element); if (foundAt > -1) { this.dataStore.splice(foundAt,1); --this.listSize; return true; } return false;}function length() { return this.listSize;}function toString() { return this.dataStore;}function insert(element, after) { var insertPos = this.find(after); if (insertPos > -1) { this.dataStore.splice(insertPos+1, 0, element); ++this.listSize; return true; } return false;}function clear() { delete this.dataStore; this.dataStore = []; this.listSize = this.pos = 0;}function contains(element) { for (var i = 0; i < this.dataStore.length; ++i) { if (this.dataStore[i] == element) { return true; } } return false;}function front() { this.pos = 0;}function end() { this.pos = this.listSize-1;}function prev() { if (this.pos > 0) { --this.pos; }}function next() { if (this.pos < this.listSize-1) { ++this.pos; }}function currPos() { return this.pos;}function moveTo(position) { this.pos = position;}function getElement() { return this.dataStore[this.pos];}

3)列表的特色性能

看過了上面的實現,你們應該發現了,列表中包含元素的個數稱爲length,能夠獲取某元素後的元素,能夠對元素進行增刪操做:能夠remove能夠insert。並且列表具備描述元素位置的屬性,即先後,也能夠將元素向前或向後移動。this


好啦,今天的分享就到這裏啦,喜歡的小夥伴請關注+好看吧~~spa


本文分享自微信公衆號 - 萌兔it(mengtu_it)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。.net

相關文章
相關標籤/搜索