jQuery自定义数组操作类(类似于List集合的增删改查)
js外部文件,前提需要引入jquery类库。
封装类代码如下:
(function ($) {
$.List = function () {
var _list = new Array();
//外部为数组赋值
this.GetDataSource = function (arr) {
if (IsArrayType(arr)) {
_list = arr;
} else {
alert("指定元素非数组类型,赋值失败!");
}
};
//添加一个元素
this.Add = function (arg) {
if (arg) {
_list.push(arg);
} else {
alert("参数错误,添加元素失败!");
}
return _list;
};
//删除指定索引的元素
this.RemoveAt = function (index) {
if (IsArrayIndex(index) && index < _list.length) {
var i;
var arr = new Array();
for (i = 0; i < _list.length; i++) {
if (i != index) {
arr.push(_list[i]);
}
}
_list = arr;
return _list;
}
else {
alert("未获取到设置对象的实例,删除元素失败!");
}
};
//按照指定的分割符显示出所有元素
this.Split = function (arg) {
arg = arg || ",";
var i, res;
res = "";
if (_list.length > 0) {
for (i = 0; i < _list.length; i++) {
res += _list[i].toString() + arg;
}
return res.substr(0, (res.length - arg.toString().length));
} else {
return "";
}
};
//外部调用直接返回当前数组实力
this.ToArray = function () {
return _list;
};
//设置指定索引处的值为指定值
this.Update = function (index, value) {
if (IsArrayIndex(index) && index < _list.length) {
_list[index] = value;
}
return _list;
};
//清空所有元素
this.RemoveAll = function () {
_list.splice(0, _list.length);
return _list;
};
//根据传入的值获取第一次出现在数组中的下标
this.IndexOf = function (value) {
if (value) {
var i;
for (i = 0; i < _list.length; i++) {
if (_list[i] == value) {
return i;
}
}
}
return -1;
};
//获取数组长度
this.Size = function () {
return _list.length;
};
//移除数组中重复的项
this.RemoveRepeat = function () {
_list.sort();
var rs = [];
var cr = false;
for (var i = 0; i < _list.length; i++) {
if (!cr)
cr = _list[i];
else if (cr == _list[i])
rs[rs.length] = i;
else
cr = _list[i];
}
for (var i = rs.length - 1; i >= 0; i--)
this.RemoveAt(rs[i]);
return _list;
};
//对数字数组元素排序,参数:0升序1降序
this.SortNumber = function (f) {
if (!f) f = 0;
if (f == 1) return _list.sort(function (a, b) { return b - a; });
return _list.sort(function (a, b) { return a - b; });
};
//私有方法
//判断正确的数组下标
function IsArrayIndex(index) {
var reg = /^\d+$/;
if (reg.test(index))
return true;
else
return false;
}
//判断当前对象是否为数组对象
function IsArrayType(arr) {
if (typeof arr == 'object' && typeof arr.length == 'number')
return true;
else
return false;
}
}; //结束List的构造方法
})(jQuery);
页面调用时需要引入两个js文件:
<script src="js/jquery-1.8.3.min.js" type="text/javascript"></script>
<script src="js/jquery.array.js" type="text/javascript"></script>
<script type="text/javascript"> $(function () {
var myList = new $.List();
myList.Add(1);
myList.Add("1906-07-08");
myList.Add("hellow world");
myList.RemoveAt(0);
myList.Update(0, "11111111");
//alert("数组被修改内容后的结果:" + myList.Split("|"));
myList.RemoveAll();
var arr = myList.ToArray();
//alert("数组全部被删除后结果:" + arr);
//alert("数组1当前长度:" + myList.Size());
var myList2 = new $.List();
myList2.Add(3);
myList2.Add(1);
myList2.Add(45); myList2.Add(21);
myList2.Add(-9);
myList2.Add(1); alert("第二个实例数组结果:" + myList2.ToArray());
myList2.RemoveRepeat();
alert("去重后第二个实例数组结果:" + myList2.ToArray());
alert("去重后第二个实例数组长度:" + myList2.Size());
myList2.SortNumber(1);
alert("排序后的数组:" + myList2.ToArray());
var arr3 = ["aaa", "bbb", "ccc", "ddd", "eee"];
var arr4;
myList2.GetDataSource(arr3);
alert("重新赋值后结果:"+myList2.ToArray()); });
</script>
</head>
jQuery自定义数组操作类(类似于List集合的增删改查)的更多相关文章
- 学习MyBatis必知必会(5)~了解myBatis的作用域和生命周期并抽取工具类MyBatisUtil、mybatis执行增删改查操作
一.了解myBatis的作用域和生命周期[错误的使用会导致非常严重的并发问题] (1)SqlSessionFactoryBuilder [ 作用:仅仅是用来创建SqlSessionFactory,作用 ...
- MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- 利用Java针对MySql封装的jdbc框架类 JdbcUtils 完整实现(包含增删改查、JavaBean反射原理,附源码)
最近看老罗的视频,跟着完成了利用Java操作MySql数据库的一个框架类JdbcUtils.java,完成对数据库的增删改查.其中查询这块,包括普通的查询和利用反射完成的查询,主要包括以下几个函数接口 ...
- 利用Java针对MySql封装的jdbc框架类 JdbcUtils 完整实现(包括增删改查、JavaBean反射原理,附源代码)
近期看老罗的视频,跟着完毕了利用Java操作MySql数据库的一个框架类JdbcUtils.java,完毕对数据库的增删改查.当中查询这块,包含普通的查询和利用反射完毕的查询,主要包含以下几个函数接口 ...
- 我来讲讲在c#中怎么进行xml文件操作吧,主要是讲解增删改查!
我把我写的四种方法代码贴上来吧,照着写没啥问题. 注: <bookstore> <book> <Id>1</Id> <tate>2010-1 ...
- java学习3创建学生属性:学号、姓名、电话 完全实现对象集合的增删改查。(控制台来做)
首先创建一个student类其中包括get,set与构造函数 /** * */package work2; /** * @author Administrator * */public final c ...
- Python操作MySQL数据库完成简易的增删改查功能
说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 目录 一丶项目介绍 二丶效果展示 三丶数据准备 四丶代码实现 五丶完整代码 一丶项目介绍 1.叙述 博主闲暇之余花了10个小时写的 ...
- ssm 框架实现增删改查CRUD操作(Spring + SpringMVC + Mybatis 实现增删改查)
ssm 框架实现增删改查 SpringBoot 项目整合 一.项目准备 1.1 ssm 框架环境搭建 1.2 项目结构图如下 1.3 数据表结构图如下 1.4 运行结果 二.项目实现 1. Emplo ...
- mysql常见操作语句,建表,增删改查
用户操作 新建用户 grant 权限 on 数据库.表名 to 用户名@'访问地址' identified by "密码"; 新建一个可以远程访问数据库的用户 test, 密码:p ...
随机推荐
- winform执行程序报错:已停止工作,windows正在检查该问题的解决方案
每次运行程序时都会弹出错误框:winform已停止工作,windows正在检查该问题的解决方案 事件查看器错位信息: 错误应用程序名称: TMS_winform.exe,版本: 1.0.0.0,时间戳 ...
- 用Socket来简单实现IIS服务器
刚刚接触ASP.NET编程,为了更好的屡清楚服务器的处理过程,就用Socket模拟服务器来处理请求.用Socket来模拟服务器的时候,同样是自己来封装一些对应的类文件.包括 HttpRequest.H ...
- python项目飞机大战
实现步骤 1.创建窗口 2.创建一个玩家飞机,按方向键可以左右移动 3.给玩家飞机添加按空格键发射子弹功能 4.创建一个敌机 5.敌机自动左右移动 6.敌机自动发射子弹 1.创建窗口 import p ...
- 关于SpringBoot开发微信模板推送
在这里演示一下微信的模板消息推送: 这里使用微信测试号 来演示: 先看下效果吧: 1.首先需要申请一个 微信测试号 https://mp.weixin.qq.com/wiki?t=resourc ...
- 05_python_字典
一.字典定义 字典是python中唯一的映射类型,以{ }括起来的键值对组成,在dict中key是唯一的.在保存时,根据key来计算一个内存地址,然后把key-value保存至地址中.这种算法是has ...
- 对股市骗子内部的一次apt测试
i春秋作家:jasonx 前言 由于这件事情搞了很久,中间很多截图已经没有了,所以文章中出现的部分截图是后面截的. 文中很多地方涉及敏感信息,为了我的人身安全,打码比较严重,还请多多理解. 起因 前不 ...
- haproxy监测页面参数简释
Queue Cur: current queued requests //当前的队列请求数量Max:max queued requests //最大的队列请求数量Limit: ...
- ssh免密码登录Permission denied (publickey,gssapi-keyex,gssapi-with-mic) 的解决方案!
当出现Permission denied (publickey,gssapi-keyex,gssapi-with-mic) 警告的时候,恭喜你,你已经离成功很近了. 远程主机这里设为slave2,用户 ...
- 深入理解java虚拟机读书笔记--java内存区域和管理
第二章:Java内存区域和内存溢出异常 2.2运行时数据区域 运行时数据区分为方法区,堆,虚拟机栈,本地方法栈,程序计数器 方法区和堆是线程共享的区域 虚拟机栈,本地方法栈,程序计数器是数据隔离的数据 ...
- windows 系统安装git的方法
windows 系统安装git的方法 msysgit是Windows版的Git,从https://git-for-windows.github.io下载 安装默认步骤,一步步安装即可 安装完成后,在开 ...