日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

javascript中的表结构

發布時間:2025/3/20 javascript 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 javascript中的表结构 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  列表是一種常見的數據結構,通常列表是一族有徐的數據,列表中的數據項稱為元素。在javascript中列表中的數據可以是任意類型的,列表中可以保存多少元素沒有事先限定,實際使用時元素的數量只收到程序內內存的限制。

  不包含任何元素的列表稱為空列表,列表中包含元素的個數稱為列表的length,在內部實現上,用一個變量listSize保存列表中元素的個數。可以在列表末尾append一個元素,也可以在一個給定元素后面insert一個元素,使用remove方法從列表中刪除元素,使用clear方法清空列表中素有的元素。

  列表有前后,分別對應front和end,使用getElement()方法顯示當前元素,列表擁有描述元素位置的屬性,使用next()方法可以從當前元素移動到下一個元素,使用prev()方法可以移動到當前元素的前一個元素,還可以使用moveTo(n)方法直接移動到指定的位置,這里n標識要移動到第n個位置,currPos屬性標識列表中的當前位置。

listSize(屬性)列表的元素個數
pos( 屬性)列表的當前位置
length( 屬性)返回列表中元素的個數
clear( 方法)清空列表中的所有元素
toString( 方法)返回列表的字符串形式
getElement( 方法)返回當前位置的元素
insert( 方法)在現有元素后插入新元素
append( 方法)在列表的末尾添加新元素
remove( 方法)從列表中刪除元素
front( 方法)將列表的當前位置設移動到第一個元素
end( 方法)將列表的當前位置移動到最后一個元素
prev(方法)將當前位置后移一位
next( 方法)將當前位置前移一位
currPos( 方法)返回列表的當前位置
moveTo(方法)將當前位置移動到指定位置

下面我們看看代碼實現

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;//給列表添加元素,給列表的下一個位置增加一個新的元素,這個位置剛好等于listSize的值function append(element) {this.dataStore[this.listSize++] = element;}//在列表中查找一個元素,對數組對象dataStore迭代,查找給定的元素,如果找到就返回鈣元素在列表中的位置function find(element) {for(var i = 0; i < this.dataSource.length; ++i) {if(this.dataSource[i] == element) {return i;}return -1;}}//從列表中刪除元素,先在列表中找到該元素,然后刪除它,并且調整底層的數據對象以填補鈣元素留下的空白,slice()方法簡化這個過程function remove(elemment) {var foundAt = this.find(elemment);if(foundAt > -1) {this.dataSource.splice(foundAt, 1);--this.listSize;return true;}return false;}//返回列表中的元素個數function length(){return this.listSize;}function toString(){return this.dataStore;}//插入元素,先找到要插入的位置,然后插入一個元素listSize自增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;}//回到第0個function front(){this.pos = 0;}//到最后一個function end(){this.pos = this.listSize - 1;}//上一個,注意這里不判斷邊界function prev(){--this.pos;}//下一個,注意這里不判斷邊界function next(){++this.pos;}//當前指針function currPos(){return this.pos;}//定位到位置function moveTo(position){ // if( position>-1 && position<this.listSize ){this.pos = position; // } }//返回當前元素function getElement(){return this.dataStore[this.pos];} }var names = new List(); names.append('Clayton'); names.append('Raymond'); names.append('Cynthia'); names.append('Jennifer'); names.append('Bryan'); names.append('Danny');for(names.front(); names.currPos() < names.length(); names.next()) {document.writeln(names.getElement()); }for(names.end(); names.currPos() >= 0; names.prev()) {document.writeln(names.getElement()); }

最后的輸出結果如下:

?

注意next()方法和prev()方法不判斷邊界,只負責移動下標。

?

?

作者:Tyler Ning
出處:http://www.cnblogs.com/tylerdonet/
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,如有問題,可以通過以下郵箱地址williamningdong@gmail.com ?聯系我,非常感謝。

總結

以上是生活随笔為你收集整理的javascript中的表结构的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。