最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

JavaScript中模拟Dictionary键值对

来源:动视网 责编:小采 时间:2020-11-27 20:31:05
文档

JavaScript中模拟Dictionary键值对

JavaScript中模拟Dictionary键值对:JavaScript常常遇到一些键值对,以前用二维数组实现,今天索性模拟了一下Dictionary帮助类。原理:创建一个对象,包含两个数组,键数组和值数组,调用JavaScript Array对象的方法。W3C参考地址:http://www.w3school.com.cn/js/jsre
推荐度:
导读JavaScript中模拟Dictionary键值对:JavaScript常常遇到一些键值对,以前用二维数组实现,今天索性模拟了一下Dictionary帮助类。原理:创建一个对象,包含两个数组,键数组和值数组,调用JavaScript Array对象的方法。W3C参考地址:http://www.w3school.com.cn/js/jsre


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 '';
}
}

使用方法:创建一个全局的变量,操作这个全局变量就可以使用了。

文档

JavaScript中模拟Dictionary键值对

JavaScript中模拟Dictionary键值对:JavaScript常常遇到一些键值对,以前用二维数组实现,今天索性模拟了一下Dictionary帮助类。原理:创建一个对象,包含两个数组,键数组和值数组,调用JavaScript Array对象的方法。W3C参考地址:http://www.w3school.com.cn/js/jsre
推荐度:
标签: js 模拟 javascript
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top