利用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中万恶的function实例分析
May 25 Javascript
Javascript学习笔记 delete运算符
Sep 13 Javascript
Kibo 用于处理键盘事件的Javascript工具库
Oct 28 Javascript
在浏览器中实现图片粘贴的jQuery插件-- pasteimg使用指南
Dec 29 Javascript
jquery实现两个图片渐变切换效果的方法
Jun 25 Javascript
JS实现浏览器状态栏文字从右向左弹出效果代码
Oct 27 Javascript
利用jQuery及AJAX技术定时更新GridView的某一列数据
Dec 04 Javascript
对jquery的ajax进行二次封装以及ajax缓存代理组件:AjaxCache详解
Apr 11 Javascript
vue实现页面加载动画效果
Sep 19 Javascript
详解Node.js 中使用 ECDSA 签名遇到的坑
Nov 26 Javascript
微信二次分享报错invalid signature问题及解决方法
Apr 01 Javascript
微信小程序自定义tabbar custom-tab-bar 6s出不来解决方案(cover-view不兼容)
Nov 01 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
php中strlen和mb_strlen用法实例分析
2016/11/12 PHP
MooTools 1.2介绍
2009/09/14 Javascript
jQuery中需要注意的细节问题小结
2011/12/06 Javascript
JS数组(Array)处理函数整理
2014/12/07 Javascript
js函数内变量的作用域分析
2015/01/12 Javascript
在JavaScript中使用NaN值的方法
2015/06/05 Javascript
使用jQuery的toggle()方法对HTML标签进行显示、隐藏的方法(示例)
2016/09/01 Javascript
详解Node中导入模块require和import的区别
2017/08/11 Javascript
微信小程序实现验证码获取倒计时效果
2018/02/08 Javascript
详解Vue单元测试case写法
2018/05/24 Javascript
vue中vee validate表单校验的几种基本使用
2018/06/25 Javascript
create-react-app 修改为多入口编译的方法
2018/08/01 Javascript
Vue 实现html中根据类型显示内容
2019/10/28 Javascript
js实现简单点赞操作
2020/03/17 Javascript
vue实现两个区域滚动条同步滚动
2020/12/13 Vue.js
Python解决鸡兔同笼问题的方法
2014/12/20 Python
Python利用flask sqlalchemy实现分页效果
2020/08/02 Python
关于Python如何避免循环导入问题详解
2017/09/14 Python
对numpy和pandas中数组的合并和拆分详解
2018/04/11 Python
Python3的介绍、安装和命令行的认识(推荐)
2018/10/20 Python
在python中只选取列表中某一纵列的方法
2018/11/28 Python
Python 获取 datax 执行结果保存到数据库的方法
2019/07/11 Python
python 穷举指定长度的密码例子
2020/04/02 Python
孤独星球出版物:Lonely Planet Publications
2018/03/17 全球购物
中国旅游网站:途牛旅游网
2019/09/29 全球购物
学生党员思想汇报
2013/12/28 职场文书
中学劳技课教师的自我评价
2014/02/05 职场文书
2014新课程改革心得体会
2014/03/10 职场文书
库房保管员岗位职责
2014/04/07 职场文书
养成教育经验材料
2014/05/26 职场文书
工厂车间标语
2014/06/19 职场文书
周年庆典答谢词
2015/01/20 职场文书
2015年试用期工作总结范文
2015/05/28 职场文书
nginx location中多个if里面proxy_pass的方法
2021/03/31 Servers
python读取mnist数据集方法案例详解
2021/09/04 Python