利用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 isArray 数组类型检测函数
Oct 08 Javascript
JQuery防止退格键网页后退的实现代码
Mar 23 Javascript
JQuery中关于jquery.js与jquery.min.js的比较探讨
May 15 Javascript
使用jquery实现IE下按backspace相当于返回操作
Mar 18 Javascript
ztree获取选中节点时不能进入可视区域出现BUG如何解决
Dec 03 Javascript
基于Vue如何封装分页组件
Dec 16 Javascript
js禁止浏览器的回退事件
Apr 20 Javascript
angularjs 的数据绑定实现原理
Jul 02 Javascript
vue axios数据请求及vue中使用axios的方法
Sep 10 Javascript
react脚手架如何配置less和ant按需加载的方法步骤
Nov 28 Javascript
js实现AI五子棋人机大战
May 28 Javascript
vue实现分页加载效果
Dec 24 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
生成缩略图
2006/10/09 PHP
Yii全局函数用法示例
2017/01/22 PHP
PHP批量删除jQuery操作
2017/07/23 PHP
laravel解决迁移文件一次删除创建字段报错的问题
2019/10/24 PHP
CL vs ForZe BO5 第二场 2.13
2021/03/10 DOTA
js实现运行代码需要刷新的解决方法
2007/08/18 Javascript
Js如何判断客户端是PC还是手持设备简单分析
2012/11/22 Javascript
使用JavaScript动态设置样式实现代码及演示动画
2013/01/25 Javascript
JS等比例缩小图片尺寸的实例
2013/02/27 Javascript
jQuery中的siblings用法实例分析
2015/12/24 Javascript
使用微信内置浏览器点击下拉框出现页面乱跳转现象(iphone),该怎么办
2016/01/04 Javascript
js实现精确到秒的日期选择器完整实例
2016/04/30 Javascript
Jquery Easyui搜索框组件SearchBox使用详解(19)
2016/12/17 Javascript
快速使用node.js进行web开发详解
2017/04/26 Javascript
手把手教你写一个微信小程序(推荐)
2018/10/17 Javascript
基于Vue2实现简易的省市区县三级联动组件效果
2018/11/05 Javascript
JS实现的合并两个有序链表算法示例
2019/02/25 Javascript
详解vue使用$http服务端收不到参数
2019/04/19 Javascript
Vue-cli打包后部署到子目录下的路径问题说明
2020/09/02 Javascript
[01:08:43]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第一场 1月9日
2021/03/11 DOTA
python在windows下实现备份程序实例
2014/07/04 Python
[原创]python爬虫(入门教程、视频教程)
2018/01/08 Python
详谈Pandas中iloc和loc以及ix的区别
2018/06/08 Python
TensorFlow通过文件名/文件夹名获取标签,并加入队列的实现
2020/02/17 Python
Python简单实现词云图代码及步骤解析
2020/06/04 Python
HTML5 Blob 实现文件下载功能的示例代码
2019/11/29 HTML / CSS
来自美国主售篮球鞋的零售商店:KICKSUSA
2017/11/28 全球购物
怎样声明一个匿名的内部类
2016/06/01 面试题
最新大学职业规划书范文
2013/12/30 职场文书
大专毕业自我鉴定
2014/02/04 职场文书
室内拓展活动方案
2014/02/13 职场文书
小学捐书活动总结
2014/07/05 职场文书
暑假安全教育广播稿
2014/09/10 职场文书
弘扬焦裕禄精神践行三严三实心得体会
2014/10/13 职场文书
2016年党员公开承诺书格式范文
2016/03/24 职场文书
spring cloud eureka 服务启动失败的原因分析及解决方法
2022/03/17 Java/Android