DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> JavaScript基礎知識 >> JavaScript數據結構 之字典
JavaScript數據結構 之字典
編輯:JavaScript基礎知識     

JavaScript數據結構 --- 字典

字典是一種以 key - value 對形式存儲數據的數據結構,就像身份證上的 ID 和名字一樣,找到了 ID ,也就確定了名字。
JavaScript 的 Object 類就是以字典形式設計的。

1. 實現 Dictionary 類。
Dictionary 類的基礎是 Array 類,而不是 Object 類。

function Dictionary() {
this.datastore = new Array();
}
定義 add() 方法,該方法接受兩個參數:key 和 value。key 是 value 在字典中的索引。

function add(key, value) {
this.datastore[key] = value;
}
定義 find() 方法,該方法以鍵為參數,返回與其關聯的值。

function find(key) {
return this.datastore[key];
}
使用 JavaScript 中內置函數:delete ,刪除 key - value 對,以此定義一個 remove() 方法。

function remove(key) {
delete this.datastore[key];
}
再寫一個能顯示字典中 key - value 對的方法 showAll()。

function showAll() {
for (var key in Object.keys(this.datastore)) {
console.log(key + " -> " + this.datastore[key]);
}
}


還可以定義一個統計字典中元素個數的方法 count() 。

function count() {
var n = 0;
for (var key in Object.keys(this.datastore)) {
++n;
}
return n;
}
測試代碼:

function Dictionary() {
this.add = add;
this.datastore = new Array();
this.find = find;
this.remove = remove;
this.showAll = showAll;
this.count = count;
this.clear = clear;
}

function add(key, value) {
this.datastore[key] = value;
}

function find(key) {
return this.datastore[key];
}

function remove(key) {
delete this.datastore[key];
}

function showAll() {
for (var key in Object.keys(this.datastore)) {
console.log(key + " -> " + this.datastore[key]);
}
}

function count() {
var n = 0;
for (var key in Object.keys(this.datastore)) {
++n;
}
return n;
}

function clear() {
for (var key in Object.keys(this.datastore)) {
delete this.datastore[key];
}
}

var test = new Dictionary();
test.add("A", "123");
test.add("B", "456");
test.add("C", "789");
console.log("Number of entries: " + test.count());
console.log("B's Value: ") + test.find("B");
test.showAll();
test.clear();
console.log("Number of entries: " + test.count());

/*
Number of entries: 3
B's Value:
0 -> undefined
1 -> undefined
2 -> undefined
Number of entries: 3
*/
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved