利用jQuery操作对象数组的实现代码


Posted in Javascript onApril 27, 2011

jQuery对于数组元素操作主要提供了以下工具:
(1)数组和对象的例遍:jQuery.each(obj,callback)
通用例遍方法,可用于例遍对象和数组。回调函数拥有两个参数:第一个为对象的成员或数组的索引,第二个为对应变量或内容。如果需要退出 each 循环可使回调函数返回 false,其它返回值将被忽略。
(2)数组元素的过滤:jQuery.grep(array,callback,[invert])
使用过滤函数过滤数组元素。此函数至少传递两个参数:待过滤数组和过滤函数。过滤函数必须返回 true 以保留元素或 false 以删除元素。
(3)数组元素的查找:jQuery.inArray(value,array)
确定第一个参数在数组中的位置(如果没有找到则返回 -1 )。
(4)删除重复元素:jQuery.unique(array)
删除数组中重复元素。
下面的实例通过对象数组的过滤来实现获取或者删除指定属性为指定值的数组元素。

<script src="js/jquery.js" ></script> 
<script> 
/** 
* 从对象数组中删除属性为objPropery,值为objValue元素的对象 
* @param Array arrPerson 数组对象 
* @param String objPropery 对象的属性 
* @param String objPropery 对象的值 
* @return Array 过滤后数组 
*/ 
function remove(arrPerson,objPropery,objValue) 
{ 
return $.grep(arrPerson, function(cur,i){ 
return cur[objPropery]!=objValue; 
}); 
} 
/** 
* 从对象数组中获取属性为objPropery,值为objValue元素的对象 
* @param Array arrPerson 数组对象 
* @param String objPropery 对象的属性 
* @param String objPropery 对象的值 
* @return Array 过滤后的数组 
*/ 
function get(arrPerson,objPropery,objValue) 
{ 
return $.grep(arrPerson, function(cur,i){ 
return cur[objPropery]==objValue; 
}); 
} 
/** 
* 显示对象数组信息 
* @param String info 提示信息 
* @param Array arrPerson 对象数组 
*/ 
function showPersonInfo(info,arrPerson) 
{ 
$.each(arrPerson, function(index,callback){ 
info+="Person id:" + arrPerson[index].id + " name:" + arrPerson[index].name+ " sex:"+ arrPerson[index].sex+" age:"+ arrPerson[index].age+"\r\t"; 
}); 
alert(info); 
} 
//测试数据 
var arrPerson=new Array(); 
var person=new Object(); 
person.id=1; 
person.name="帅哥"; 
person.sex="男"; 
person.age=30; 
arrPerson.push(person); 
person=new Object(); 
person.id=2; 
person.name="美眉甲"; 
person.sex="女"; 
person.age=28; 
arrPerson.push(person); 
person=new Object(); 
person.id=3; 
person.name="美眉乙"; 
person.sex="女"; 
person.age=20; 
arrPerson.push(person); 
//测试删除 
showPersonInfo("原始数组:\r\t",arrPerson); 
arrPerson=remove(arrPerson,"id",1); 
showPersonInfo("删除之后:\r\t",arrPerson); 
//测试获取 
arrPerson=get(arrPerson,"id",3); 
showPersonInfo("只获取ID为3的元素:\r\t",arrPerson); 
</script>
Javascript 相关文章推荐
javascript:void(0)的真正含义实例分析
Aug 20 Javascript
jQuery LigerUI 使用教程表格篇(1)
Jan 18 Javascript
深入document.write()与HTML4.01的非成对标签的详解
May 08 Javascript
JS记录用户登录次数实现代码
Jan 15 Javascript
根据当前时间在jsp页面上显示上午或下午
Aug 18 Javascript
在for循环中length值是否需要缓存
Jul 27 Javascript
jquery实现图片水平滚动效果代码分享
Aug 26 Javascript
Ionic3 UI组件之autocomplete详解
Jun 08 Javascript
通俗易懂地解释JS中的闭包
Oct 23 Javascript
angular 组件通信的几种实现方式
Jul 13 Javascript
解决angularjs中同步执行http请求的方法
Aug 13 Javascript
使用Vue中 v-for循环列表控制按钮隐藏显示功能
Apr 23 Javascript
jquery.cookie.js 操作cookie实现记住密码功能的实现代码
Apr 27 #Javascript
jquery调用asp.net 页面后台的实现代码
Apr 27 #Javascript
jQuery Ajax方法调用 Asp.Net WebService 的详细实例代码
Apr 27 #Javascript
Javascript实现仿WebQQ界面的“浮云”兼容 IE7以上版本及FF
Apr 27 #Javascript
js,jQuery 排序的实现代码,网页标签排序的实现,标签排序
Apr 27 #Javascript
javascript中的继承实例代码
Apr 27 #Javascript
各浏览器对link标签onload/onreadystatechange事件支持的差异分析
Apr 27 #Javascript
You might like
php 前一天或后一天的日期
2008/06/28 PHP
基于PHP如何把汉字转化为拼音
2015/12/11 PHP
javascript网页关键字高亮代码
2008/07/30 Javascript
最佳JS代码编写的14条技巧
2011/01/09 Javascript
从零开始学习jQuery (四) jQuery中操作元素的属性与样式
2011/02/23 Javascript
JavaScript 匿名函数(anonymous function)与闭包(closure)
2011/10/04 Javascript
JavaScript运行机制之事件循环(Event Loop)详解
2014/10/10 Javascript
javascript中slice(),splice(),split(),substring(),substr()使用方法
2015/03/13 Javascript
JavaScript图片轮播代码分享
2015/07/31 Javascript
jQuery平滑旋转幻灯片特效代码分享
2015/09/07 Javascript
JavaScript对象数组的排序处理方法
2015/10/21 Javascript
JS原型链 详解及示例代码
2016/09/06 Javascript
vue-cli 3.x配置跨域代理的实现方法
2019/04/12 Javascript
浅谈layui使用模板引擎动态渲染元素要注意的问题
2019/09/14 Javascript
vue项目引入ts步骤(小结)
2019/10/31 Javascript
Vue防止白屏添加首屏动画的实例
2019/10/31 Javascript
vue路由跳转传递参数的方式总结
2020/05/10 Javascript
[02:59]DOTA2完美大师赛主赛事第三日精彩集锦
2017/11/25 DOTA
Python设计模式中单例模式的实现及在Tornado中的应用
2016/03/02 Python
使用Python编写一个最基础的代码解释器的要点解析
2016/07/12 Python
Django 路由系统URLconf的使用
2018/10/11 Python
pandas DataFrame 删除重复的行的实现方法
2019/01/29 Python
基于python if 判断选择结构的实例详解
2019/05/06 Python
查看keras各种网络结构各层的名字方式
2020/06/11 Python
如何使用PyCharm引入需要使用的包的方法
2020/09/22 Python
米兰必去买手店排行榜首位:Antonioli
2016/09/11 全球购物
加拿大在线隐形眼镜专家:PerfectLens.ca
2016/11/19 全球购物
英国最好的包装供应商:Priory Direct
2019/12/17 全球购物
会计系毕业求职信
2014/08/07 职场文书
乡镇领导班子批评与自我批评材料
2014/09/23 职场文书
2014年政工师工作总结
2014/12/18 职场文书
2015年药店店长工作总结
2015/04/29 职场文书
解决python绘图使用subplots出现标题重叠的问题
2021/04/30 Python
ORM模型框架操作mysql数据库的方法
2021/07/25 MySQL
Python实现简单的俄罗斯方块游戏
2021/09/25 Python
Python人工智能之混合高斯模型运动目标检测详解分析
2021/11/07 Python