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 相关文章推荐
Javascript &amp; DHTML 实例编程(教程)基础知识
Jun 02 Javascript
JQuery 网站换肤功能实现代码
Nov 02 Javascript
cloudgamer出品ImageZoom 图片放大效果
Apr 01 Javascript
Javascript 通过json自动生成Dom的代码
Apr 01 Javascript
jQuery :first选择器使用介绍
Aug 09 Javascript
javascript操作css属性
Dec 30 Javascript
node.js操作MongoDB的实例详解
Oct 11 Javascript
vue-cli webpack2项目打包优化分享
Feb 07 Javascript
vuex根据不同的用户权限展示不同的路由列表功能
Sep 20 Javascript
纯JS实现五子棋游戏
May 28 Javascript
Vue 实现监听窗口关闭事件,并在窗口关闭前发送请求
Sep 01 Javascript
jQuery是用来干什么的 jquery其实就是一个js框架
Feb 04 jQuery
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
PHP的switch判断语句的“高级”用法详解
2014/10/01 PHP
PHP下载远程文件到本地存储的方法
2015/03/24 PHP
php curl 上传文件代码实例
2015/04/27 PHP
PHP 文件锁与进程锁的使用示例
2017/08/07 PHP
PHP排序算法之基数排序(Radix Sort)实例详解
2018/04/21 PHP
PHP使用Session实现上传进度功能详解
2019/08/06 PHP
Laravel如何同时连接多个数据库详解
2019/08/13 PHP
JavaScript 对象成员的可见性说明
2009/10/16 Javascript
javascript判断用户浏览器插件安装情况的代码
2011/01/01 Javascript
javascript学习笔记(五)原型和原型链详解
2014/10/08 Javascript
jQuery控制网页打印指定区域的方法
2015/04/07 Javascript
全系IE支持Bootstrap的解决方法
2015/10/19 Javascript
javaScript中定义类或对象的五种方式总结
2016/12/04 Javascript
详解VUE的状态控制与延时加载刷新
2017/03/27 Javascript
基于Two.js实现星球环绕动画效果的示例
2017/11/06 Javascript
node.js中TCP Socket多进程间的消息推送示例详解
2018/07/10 Javascript
javascript实现滚动条效果
2020/03/24 Javascript
python读取word文档的方法
2015/05/09 Python
python3实现ftp服务功能(服务端 For Linux)
2017/03/24 Python
Python tkinter事件高级用法实例
2018/01/31 Python
详解python中的Turtle函数库
2018/11/19 Python
Python中整数的缓存机制讲解
2019/02/16 Python
使用pytorch和torchtext进行文本分类的实例
2020/01/08 Python
Python3实现mysql连接和数据框的形成(实例代码)
2020/01/17 Python
Python读取表格类型文件代码实例
2020/02/17 Python
伦敦高达60%折扣的钻石珠宝商:Purely Diamonds
2018/06/24 全球购物
美国在线面料商店:Online Fabric Store
2018/07/26 全球购物
求职推荐信范文
2013/12/01 职场文书
应届本科生推荐信范文
2013/12/25 职场文书
化妆品店促销方案
2014/02/24 职场文书
优秀三好学生事迹材料
2014/08/31 职场文书
预备党员2014年第四季度思想汇报范文
2014/10/25 职场文书
党员干部廉政承诺书
2015/04/28 职场文书
毕业论文致谢格式模板
2015/05/14 职场文书
婚育证明样本
2015/06/16 职场文书
标会主持词应该怎么写?
2019/08/15 职场文书