JavaScript中類比 Dictionary索引值對

來源:互聯網
上載者:User

原文發表在:http://www.birchlee.com/post/2011/10/19/27.aspx

JavaScript常常遇到一些索引值對,以前用二維數組實現,今天索性類比了一下Dictionary協助類。

原理:建立一個對象,包含兩個數組,鍵數組和值數組,調用JavaScript Array對象的方法。

W3C參考地址:http://www.w3school.com.cn/js/jsref_obj_array.asp

BuildDictionary()方法用於建立一個包含兩個數組的Dictionary對象

AddItem方法 調用JavaScript的 Array對象的push方法,用於將key,value追加到相應的數組。

UpdateItem方法用於更改相應的value

DeleteItem方法 調用JavaScript的Array對象的Splice方法用於刪除元素,第一個參數是需要刪除的元素的index,第一個參數代表刪除的個數。

GetKeyStr用於得到Keys數組拼接後的字串

GetValueStr用於得到Values數組拼接後的字串

共包含五個方法:

/*建立Dictionary*/
function BuildDictionary() {
dic = new Object();
dic.Keys = new Array(); //鍵數組
dic.Values = new Array(); //值數組
return dic;
}

/*添加 key,value*/
function AddItem(key, value, dic) {
var keyCount = dic.Keys.length;
if (keyCount > 0) {
var flag = true;
for (var i = 0; i < keyCount; i++) {
if (dic.Keys[i] == key) {
flag = false;
break; //如果存在則不添加
}
}
if (flag) {
dic.Keys.push(key)
dic.Values.push(value);
}
}
else {
dic.Keys.push(key)
dic.Values.push(value);
}
return dic;
}
/*更改key,value*/
function UpdateItem(key, value, dic) {
var keyCount = dic.Keys.length;
if (keyCount > 0) {
var flag = -1;
for (var i = 0; i < keyCount; i++) {
if (dic.Keys[i] == key) {
flag = i;
break; //尋找相應的index
}
}
if (flag > -1) {
dic.Keys[flag] = key;
dic.Values[flag] = value;
}
return dic;
}
else {
return dic;
}
}
/*移除key value*/
function DeleteItem(key, dic) {
var keyCount = dic.Keys.length;
if (keyCount > 0) {
var flag = -1;
for (var i = 0; i < keyCount; i++) {
if (dic.Keys[i] == key) {
flag = i;
break; //尋找相應的index
}
}
if (flag > -1) {
dic.Keys.splice(flag,1); //移除
dic.Values.splice(flag, 1); //移除
}
return dic;
}
else {
return dic;
}
}

/*擷取Key字串,用符號拼接*/
function GetKeyStr(separator,dic)
{
var keyCount=dic.Keys.length;
if(keyCount>0)
{
return dic.Keys.join(separator);
}
else
{
return '';
}
}
/*擷取Value字串,用符號拼接*/
function GetValueStr(separator,dic)
{
var keyCount=dic.Keys.length;
if(keyCount>0)
{
return dic.Values.join(separator);
}
else
{
return '';
}
}

使用方法:建立一個全域的變數,操作這個全域變數就可以使用了。

在此拋磚引玉了

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.