利用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 CSS菜单功能 改进版
Dec 20 Javascript
细品javascript 寻址,闭包,对象模型和相关问题
Apr 27 Javascript
JavaScript Date对象使用总结
May 14 Javascript
jcarousellite.js 基于Jquery的图片无缝滚动插件
Dec 30 Javascript
IE下使用cloneNode注意事项分享
Nov 22 Javascript
JavaScript调用后台的三种方法实例
Oct 17 Javascript
给文字加上着重号的JS代码
Nov 12 Javascript
Angularjs中使用指令绑定点击事件的方法
Mar 30 Javascript
angular 组件通信的几种实现方式
Jul 13 Javascript
JS与SQL方式随机生成高强度密码示例
Dec 29 Javascript
javascript实现切割轮播效果
Nov 28 Javascript
Node.js 中如何收集和解析命令行参数
Jan 08 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下MYSQL limit的优化
2008/01/10 PHP
解决163/sohu/sina不能够收到PHP MAIL函数发出邮件的问题
2009/03/13 PHP
PHP 字符串编码截取函数(兼容utf-8和gb2312)
2009/05/02 PHP
献给php初学者(入门学习经验谈)
2010/10/12 PHP
php缓冲 output_buffering和ob_start使用介绍
2014/01/30 PHP
PHP基于单例模式实现的数据库操作基类
2016/01/15 PHP
yii2带搜索功能的下拉框实例详解
2016/05/12 PHP
javascript 面向对象思想 附源码
2009/07/07 Javascript
JS 控件事件小结
2012/10/31 Javascript
jQuery中insertBefore()方法用法实例
2015/01/08 Javascript
JavaScript实现列表分页功能特效
2015/05/15 Javascript
简介JavaScript中的unshift()方法的使用
2015/06/09 Javascript
javascript日期计算实例分析
2015/06/29 Javascript
jquery.cookie.js实现用户登录保存密码功能的方法
2016/04/15 Javascript
实例浅析js的this
2016/12/11 Javascript
原生JavaScript实现Tooltip浮动提示框特效
2017/03/07 Javascript
JavaScript实现树的遍历算法示例【广度优先与深度优先】
2017/10/26 Javascript
js 客户端打印html 并且去掉页眉、页脚的实例
2017/11/03 Javascript
JS实现可视化文件上传
2018/09/08 Javascript
node.js的Express服务器基本使用教程
2019/01/09 Javascript
vue 验证两次输入的密码是否一致的方法示例
2020/09/29 Javascript
python实现进程间通信简单实例
2014/07/23 Python
利用Python如何将数据写到CSV文件中
2018/06/05 Python
使用pandas模块读取csv文件和excel表格,并用matplotlib画图的方法
2018/06/22 Python
python实现图片筛选程序
2018/10/24 Python
使用python 写一个静态服务(实战)
2019/06/28 Python
解决Pytorch 训练与测试时爆显存(out of memory)的问题
2019/08/20 Python
Django 对IP访问频率进行限制的例子
2019/08/30 Python
Matlab中plot基本用法的具体使用
2020/07/17 Python
Python3如何实现Win10桌面自动切换
2020/08/11 Python
html5 canvas 实现光线沿不规则路径运动
2020/04/20 HTML / CSS
编辑硕士自荐信范文
2013/11/27 职场文书
2014全国两会学习心得体会1000字
2014/03/10 职场文书
驾驶员安全责任书
2014/07/22 职场文书
2016继续教育研修日志
2015/11/13 职场文书
公务员廉洁从政心得体会
2016/01/19 职场文书