js jquery数组介绍


Posted in Javascript onJuly 15, 2012

1.数组的创建
var arr=new Array();
2.查找数组中的元素

for(var i=0;i<arr.length;i++) 
if(arr[i]==temp) 
return true;

3.下面比较一下Array和Object的特性:
Array:
新建:var ary = new Array(); 或 var ary = [];
增加:ary.push(value);
删除:delete ary[n];
遍历:for ( var i=0 ; i < ary.length ; ++i ) ary[i];

Object:
新建:var obj = new Object(); 或 var obj = {};
增加:obj[key] = value; (key为string)
删除:delete obj[key];
遍历:for ( var key in obj ) obj[key];
从上面的比较可以看出Object完全可以作为一个集合来使用,在使用Popup窗口创建无限级Web页菜单(3)中我介绍过Eric实现的那个__MenuCache__,它也就是一个模拟的集合对象。

如果我们要在Array中检索出一个指定的值,我们需要遍历整个数组:

var keyword = ; 
for ( var i=0 ; i < ary.length ; ++i ) 

{ 

if ( ary[i] == keyword ) 

{ 

// todo 

} 

}

而我们在Object中检索一个指定的key的条目,只需要是要使用:

var key = ''; 
var value = obj[key]; 

// todo

 Object的这个特性可以用来高效的检索Unique的字符串集合,遍历Array的时间复杂度是O(n),而遍历Object的时间复杂度是O(1)。虽然对于10000次集合的for检索代价也就几十ms,可是如果是1000*1000次检索或更多,使用Object的优势一下就体现出来了。在此之前我做了一个mapping,把100个Unique的字符mapping到1000个字符串数组上,耗时25-30s!后来把for遍历改成了Object模拟的集合的成员引用,同样的数据量mapping,耗时仅1.7-2s!!!

对于集合的遍历效率(从高到低):var value = obj[key]; > for ( ; ; ) > for ( in )。效率最差的就是for( in )了,如果集合过大,尽量不要使用for ( in )遍历。

4.
shift:删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined
var a = [1,2,3,4,5];
var b = a.shift(); //a:[2,3,4,5] b:1
unshift:将参数添加到原数组开头,并返回数组的长度
var a = [1,2,3,4,5];
var b = a.unshift(-2,-1); //a:[-2,-1,1,2,3,4,5] b:7
注:在IE6.0下测试返回值总为undefined,FF2.0下测试返回值为7,所以这个方法的返回值不可靠,需要用返回值时可用splice代替本方法来使用。
pop:删除原数组最后一项,并返回删除元素的值;如果数组为空则返回undefined
var a = [1,2,3,4,5];
var b = a.pop(); //a:[1,2,3,4] b:5
push:将参数添加到原数组末尾,并返回数组的长度
var a = [1,2,3,4,5];
var b = a.push(6,7); //a:[1,2,3,4,5,6,7] b:7
concat:返回一个新数组,是将参数添加到原数组中构成的
var a = [1,2,3,4,5];
var b = a.concat(6,7); //a:[1,2,3,4,5] b:[1,2,3,4,5,6,7]
splice(start,deleteCount,val1,val2,...):从start位置开始删除deleteCount项,并从该位置起插入val1,val2,...
var a = [1,2,3,4,5];
var b = a.splice(2,2,7,8,9); //a:[1,2,7,8,9,5] b:[3,4]
var b = a.splice(0,1); //同shift
a.splice(0,0,-2,-1); var b = a.length; //同unshift
var b = a.splice(a.length-1,1); //同pop
a.splice(a.length,0,6,7); var b = a.length; //同push
reverse:将数组反序
var a = [1,2,3,4,5];
var b = a.reverse(); //a:[5,4,3,2,1] b:[5,4,3,2,1]
sort(orderfunction):按指定的参数对数组进行排序
var a = [1,2,3,4,5];
var b = a.sort(); //a:[1,2,3,4,5] b:[1,2,3,4,5]
slice(start,end):返回从原数组中指定开始下标到结束下标之间的项组成的新数组
var a = [1,2,3,4,5];
var b = a.slice(2,5); //a:[1,2,3,4,5] b:[3,4,5]
join(separator):将数组的元素组起一个字符串,以separator为分隔符,省略的话则用默认用逗号为分隔符
var a = [1,2,3,4,5];
var b = a.join("|"); //a:[1,2,3,4,5] b:"1|2|3|4|5"

数组是JavaScript提供的一个内部对象,它是一个标准的集合,我们可以添加(push)、删除(shift)里面元素,我们还可以通过for循环遍历里面的元素

Javascript 相关文章推荐
判断复选框是否被选中的两种方法
Jun 04 Javascript
百度判断手机终端并自动跳转js代码及使用实例
Jun 11 Javascript
jQuery获取节点和子节点文本的方法
Jul 22 Javascript
javascript实现简易计算器的代码
May 31 Javascript
jQuery插件autocomplete使用详解
Feb 04 Javascript
jQuery Mobile漏洞会有跨站脚本攻击风险
Feb 12 Javascript
node.js读取Excel数据(下载图片)的方法示例
Aug 02 Javascript
微信小程序实现省市区三级地址选择
Jun 21 Javascript
Vue CLI 3.x 自动部署项目至服务器的方法
Apr 02 Javascript
Vue路由管理器Vue-router的使用方法详解
Feb 05 Javascript
vue实现抽屉弹窗效果
Nov 15 Javascript
HTML+JS实现在线朗读器
Feb 15 Javascript
js限制文本框只能输入数字(正则表达式)
Jul 15 #Javascript
基于jquery的图片幻灯展示源码
Jul 15 #Javascript
20款非常优秀的 jQuery 工具提示插件 推荐
Jul 15 #Javascript
EasyUI 中 MenuButton 的使用方法
Jul 14 #Javascript
为EasyUI的Tab标签添加右键菜单的方法
Jul 14 #Javascript
jQuery Tools tab(幻灯片)
Jul 14 #Javascript
jQuery Tools tab使用介绍
Jul 14 #Javascript
You might like
Smarty+QUICKFORM小小演示
2007/02/25 PHP
PHP按符号截取字符串的指定部分的实现方法
2018/09/10 PHP
Laravel 5.4前后台分离,通过不同的二级域名访问方法
2019/10/13 PHP
select组合框option的捕捉实例代码
2008/09/30 Javascript
33个优秀的 jQuery 图片展示插件分享
2012/03/14 Javascript
jquery定时滑出可最小化的底部提示层特效代码
2013/10/02 Javascript
JQuery实现table行折叠效果以JSON做数据源
2014/05/26 Javascript
分享一个自己动手写的jQuery分页插件
2014/08/28 Javascript
Javascript中Array.prototype.map()详解
2014/10/22 Javascript
JS实现显示带倒影的图片横排居中放大展示特效实例【测试可用】
2016/08/23 Javascript
JS实现拖动滚动条评分的效果代码分享
2016/09/29 Javascript
JavaScript获取移动设备型号的实现代码(JS获取手机型号和系统)
2018/03/10 Javascript
JavaScript实现简单动态进度条效果
2018/04/06 Javascript
Vue作用域插槽slot-scope实例代码
2018/09/05 Javascript
jquery ui 实现 tab标签功能示例【测试可用】
2019/07/25 jQuery
vue路由 遍历生成复数router-link的例子
2019/10/30 Javascript
Python中zip()函数用法实例教程
2014/07/31 Python
Python中AND、OR的一个使用小技巧
2015/02/18 Python
wxpython中Textctrl回车事件无效的解决方法
2016/07/21 Python
Python面向对象class类属性及子类用法分析
2018/02/02 Python
python使用turtle绘制分形树
2018/06/22 Python
解决Python运行文件出现out of memory框的问题
2018/12/03 Python
Python中使用pypdf2合并、分割、加密pdf文件的代码详解
2019/05/21 Python
Django实现web端tailf日志文件功能及实例详解
2019/07/28 Python
matlab 计算灰度图像的一阶矩,二阶矩,三阶矩实例
2020/04/22 Python
Dr. Martens马汀博士澳大利亚官网:马丁靴鼻祖
2019/07/02 全球购物
Unix里面如何在后台运行程序
2016/10/14 面试题
法律进企业活动方案
2014/03/04 职场文书
小学生个人先进事迹材料
2014/05/08 职场文书
建筑专业毕业生自荐信
2014/05/25 职场文书
预备党员公开承诺书
2014/05/28 职场文书
检察院起诉意见书
2015/05/20 职场文书
离婚案件原告代理词
2015/05/23 职场文书
南京大屠杀观后感
2015/06/02 职场文书
Django利用AJAX技术实现博文实时搜索
2021/05/06 Python
聊聊Python中关于a=[[]]*3的反思
2021/06/02 Python