
但是如果需要经常查找,那最好建立一个查找表,比如
function createLookMap(field) {
var map = {}
for (var i = 0i <jsonArr.lengthi++) {
var item = jsonArr[i]
var key = item[field]
map[field] = item
}
return map
}
var idMap = createLookMap("id")
在查找的时候只需要直接从 idMap 中取就行了
var id = needId()
var obj = idMap[id]// the found object or undefined
如果还需要按 name 来查找,可以再建一个查找表
var nameMap = creaetLookMap("name")
如果 name 不是唯一的,那创建查找表的时候就要耍点手段,保存一个数组而不是一个对象
function createLookMap(field) {
var map = {}
for (var i = 0i <jsonArr.lengthi++) {
var item = jsonArr[i]
var key = item[field]
var list = map[key]
fi (!list) {
map[key] = list = []
}
list.push(item)
}
return map
}
<html><head>
<meta http-equiv="Content-Type" content="text/htmlcharset=gbk"/>
<script type="text/javascript">
var smsTypeDesc = {"4":"回访短信","3":"邮件短信","aa":"测试短信"}
function EnumaKey(){
for(var key in smsTypeDesc){
alert(key)
}
}
function GetVal(){
var key = prompt("请输入要查询的key","4")
if("undefined"==typeof(smsTypeDesc)) return
if("undefined"==typeof(smsTypeDesc[key])){
alert("输入的key:"+key+", 在json对象中不存在!")
return
}
alert("您输入的key是:"+key + ",该key所对应的值是:"+smsTypeDesc[key])
}
function GetValByKey(){
alert(smsTypeDesc.aa)
}
</script>
</head>
<body>
Json对象:<br/>
<pre>
var smsTypeDesc = {"4":"回访短信","3":"邮件短信","aa":"测试短信"}
</pre>
<input type="button" onclick="EnumaKey()" value="遍历smsTypeDesc所有key"/>
<input type="button" onclick="GetVal()" value="获取smsTypeDesc动态指定key的值"/>
<input type="button" onclick="GetValByKey()" value="获取smsTypeDesc key aa 所对应的值"/>
</body>
</html>
jquery对json 键值对或数组的增加、删除、遍历 *** 作的代码如下:
var jsonStr={}
//增加jsonStr["name1"]="yu"jsonStr["name2"]="jin"jsonStr["name3"]="sheng"
$.each(jsonStr,function(_key)
{ console.log("Push结果:"+_key+"=="+jsonStr[_key]+"\r\n")})
//遍历$.each(jsonStr,function(_key)
{ var key = _key
var value = jsonStr[_key]
if(_key=="name1")
{ //删除 delete jsonStr[_key]
}
})
$.each(jsonStr,function(_key){ console.log("删除后的结果:"+_key+"=="+jsonStr[_key]+"\r\n")
})
输出结果为:
扩展资料:
jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架)。
jQuery设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档 *** 作、事件处理、动画设计和Ajax交互。
jQuery的核心特性可以总结为:具有独特的链式语法和短小清晰的多功能接口;具有高效灵活的css选择器,并且可对CSS选择器进行扩展;拥有便捷的插件扩展机制和丰富的插件。jQuery兼容各种主流浏览器,如IE 6.0+、FF 1.5+、Safari 2.0+、Opera 9.0+等。
jQuery的模块可以分为3部分:入口模块、底层支持模块和功能模块。
在构造jQuery对象模块中,如果在调用构造函数jQuery()创建jQuery对象时传入了选择器表达式,则会调用选择器Sizzle(一款纯JavaScript实现的CSS选择器引擎,用于查找与选择器表达式匹配的元素集合)遍历文档,查找与之匹配的DOM元素,并创建一个包含了这些DOM元素引用的jQuery对象。
浏览器功能测试模块提供了针对不同浏览器功能和bug的测试结果,其他模块则基于这些测试结果来解决浏览器之间的兼容性问题。
在底层支持模块中,回调函数列表模块用于增强对回调函数的管理,支持添加、移除、触发、锁定、禁用回调函数等功能。
异步队列模块用于解耦异步任务和回调函数,它在回调函数列表的基础上为回调函数增加了状态,并提供了多个回调函数列表,支持传播任意同步或异步回调函数的成功或失败状态。
数据缓存模块用于为DOM元素和Javascript对象附加任意类型的数据;队列模块用于管理一组函数,支持函数的入队和出队 *** 作,并确保函数按顺序执行,它基于数据缓存模块实现。
参考资料:
百度百科--jQuery
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)