利用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 相关文章推荐
使用自定义setTimeout和setInterval使之可以传递参数和对象参数
Apr 24 Javascript
JQuery 风格的HTML文本转义
Jul 01 Javascript
html页面显示年月日时分秒和星期几的两种方式
Aug 20 Javascript
使用JavaScript判断图片是否加载完成的三种实现方式
May 04 Javascript
JS实现table表格数据排序功能(可支持动态数据+分页效果)
May 26 Javascript
Vue中保存用户登录状态实例代码
Jun 07 Javascript
浅谈ECMAScript6新特性之let、const
Aug 02 Javascript
bootstrap table表格插件之服务器端分页实例代码
Sep 12 Javascript
浅谈vue方法内的方法使用this的问题
Sep 15 Javascript
在vue中安装使用vux的教程详解
Sep 16 Javascript
Vue实现简易翻页效果源码分享
Nov 08 Javascript
JavaScript基于面向对象实现的无缝滚动轮播示例
Jan 17 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
PHP4和PHP5性能测试和对比 测试代码与环境
2007/08/17 PHP
php的日期处理函数及uchome的function_coomon中日期处理函数的研究
2011/01/12 PHP
PHP实现显示照片exif信息的方法
2014/07/11 PHP
php中JSON的使用与转换
2015/01/14 PHP
PHP判断是手机端还是PC端 PHP判断是否是微信浏览器
2017/03/15 PHP
PHP简单实现二维数组的矩阵转置操作示例
2017/11/24 PHP
JavaScript面向对象编程入门教程
2014/04/16 Javascript
jQuery中 attr() 方法使用小结
2015/05/03 Javascript
JavaScript代码性能优化总结(推荐)
2016/05/16 Javascript
JavaScript实现类似拉勾网的鼠标移入移出效果
2016/10/27 Javascript
Bootstrap基本样式学习笔记之表单(3)
2016/12/07 Javascript
微信小程序多张图片上传功能
2017/06/07 Javascript
React Native react-navigation 导航使用详解
2017/12/01 Javascript
Vue二次封装axios为插件使用详解
2018/05/21 Javascript
Vue刷新修改页面中数据的方法
2018/09/16 Javascript
vue组件通信传值操作示例
2019/01/08 Javascript
JavaScript实现单图片上传并预览功能
2019/09/30 Javascript
详解Vue后台管理系统开发日常总结(组件PageHeader)
2019/11/01 Javascript
小程序卡片切换效果组件wxCardSwiper的实现
2020/02/13 Javascript
Node.js 深度调试方法解析
2020/07/28 Javascript
vue+element UI实现树形表格
2020/12/29 Vue.js
[04:05]TI9战队采访 - Natus Vincere
2019/08/22 DOTA
Windows中使用wxPython和py2exe开发Python的GUI程序的实例教程
2016/07/11 Python
python中安装Scrapy模块依赖包汇总
2017/07/02 Python
python代码实现ID3决策树算法
2017/12/20 Python
python实现websocket的客户端压力测试
2019/06/25 Python
对django的User模型和四种扩展/重写方法小结
2019/08/17 Python
python3爬取torrent种子链接实例
2020/01/16 Python
Python 如何反方向迭代一个序列
2020/07/28 Python
HTML5 在canvas中绘制矩形附效果图
2014/06/23 HTML / CSS
保密承诺书
2014/03/27 职场文书
音乐兴趣小组活动总结
2014/07/07 职场文书
艺术节开幕词
2015/01/28 职场文书
社区法制宣传日活动总结
2015/05/05 职场文书
小学音乐课歌曲《堆雪人》教学反思
2016/02/18 职场文书
《弟子规》读后感:知廉耻、明是非、懂荣辱、辨善恶
2019/12/03 职场文书