JS中数组Array的用法示例介绍


Posted in Javascript onFebruary 20, 2014

new Array()
new Array(len)
new Array([item0,[item1,[item2,...]]]
使用数组对象的方法:
var objArray=new Array();
objArray.concact([item1[,item2[,....]]]-------------------将参数列表连接到objArray的后面形成一个新的数组并返回,原有数组不受影响。如:var arr=["a","b","c"];
arr.concact("d","e");
将返回包括从"a"到"e"字母元素的数组。而arr本身不受影响。
objArray.join(separator)-----------------以separator指定的字符作为分割符,将数组转换为字符串,当seperator 为逗号时,其作用和toString()相同。
objArray.pop()---------通俗的讲,就是弹出数组的最后一个元素。结合下面的push方法,使得将数组作为栈来使用成为可能。pop方法返回数组最后一个元素的值,并将length属性减1,即返回后立即丢失最后一个元素。
objArray.push([value1[,value2[,....]]])-------------将参数添加到数组的结尾。如:[1,2,3, 4].push("a","b")将得到[1,2,3,4,"a","b"]
objArray.reverse()将数组中的元素反转排列。如:[1,2,3].reverse()将得到[3,2,1],这个操作是在原有数组上经行操作,同时也返回数组本身
objArray.shift()-----------移去数组的第一个元素,并返回这个元素的值。这个方法的性质和pop方法很类似,pop方法是移去最后一个元素。
objArray.slice(start,end)----------- 返回数组对象的一个子集,索引从start开始(包括 start),到end结束(不包括end),原有数组不受影响。如:[1,2,3,4,5,6].slice(1,4)将得到[2,3,4]。当 start或者end为负数时,则使用他们加上length后地值。如:[1,2,3,4,5,6].slice(-4,-1)将得到[3,4,5]。如果end小于等于start,将返回空数组。
objArray.sort(comparefn)------- 根据comparefn定义的大小比较函数,对一个数组进行排序。函数comparefn必须接受两个参数element1,element2,如果需要需要element1排在element2之前,应该返回一个负数;如果需要element1排在element2之后,应该返回一个正数,如果两个数平等对待(即保持原有顺序)则返回0。当省略comparefn时,则元素按照字典顺序排列。如:对定义的比较函数cmp: function cmp(e1,e2){return e1-e2;}则[3,4,2,7].sort(cmp)将得到[2,3,4,7].
objArray.splice(start,deleteCount[,item1,item2[,...]]]) 这是一个复杂的函数,用于完成数组元素的删除 取代和插入操作。其中,start参数表示要进行操作的索引位置,deleteCount指从start开始要删除的元素的元素个数(包括了start位置),如果deleteCount省略,则表示从start开始要删除数组的剩余部分。[,item1[,item2[,...]]]则表示可选的插入到start之前的元素列表。如:
var arr=[0,1,2,3,4,5,6];
arr.splice(1,1);
document.write(arr);//显示“0,2,3,4,5,6”
arr=[0,1,2,3,4,5,6];
arr.splice(0,0,"a","b");
document.write(arr);//显示“a,b,0,1,2,3,4,5,6"
arr=[0,1,2,3,4,5,6];
arr.splice(3,2,"c","d");
document.write(arr);//显示"0,1,2,c,d,5,6"
objArray.unshift(item1[,item2[,...]]])------------------- 将参数列表插入到数组的开头。其性质和push方法类型,但push方法是将元素添加到数组的结尾。如: [1,2,3,4].unshift("a","b")将得到["a","b",1,2,3,4]。

js数组元素的添加和删除一直比较迷惑,今天终于找到详细说明的资料了,先给个我测试的代码^-^
var arr = new Array();
arr[0] = "aaa";
arr[1] = "bbb";
arr[2] = "ccc";
//alert(arr.length);//3
arr.pop();
//alert(arr.length);//2
//alert(arr[arr.length-1]);//bbb
arr.pop();
//alert(arr[arr.length-1]);//aaa
//alert(arr.length);//1

var arr2 = new Array();
//alert(arr2.length);//0
arr2[0] = "aaa";
arr2[1] = "bbb";
//alert(arr2.length);//2
arr2.pop();
//alert(arr2.length);//1
arr2 = arr2.slice(0,arr2.length-1);
//alert(arr2.length);//0
arr2[0] = "aaa";
arr2[1] = "bbb";
arr2[2] = "ccc";
arr2 = arr2.slice(0,1);
alert(arr2.length);//1
alert(arr2[0]);//aaa
alert(arr2[1]);//undefined

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,...

在清空数组时,只需传递startIndex。

如果不删除所有元素,再传递deleteCount参数。

splice还具有先删除后添加的功能,即先删除几个元素,然后在删除的位置再添加若干元素,删除与添加的元素的个数没有必须相等,这时侯deleteCount也是要用到的。
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"

再给个利用数组模拟javaStringBuffer处理字符串的方法:

/** 
* 字符串处理函数 
*/ 
function StringBuffer() { 
var arr = new Array; 
this.append = function(str) { 
arr[arr.length] = str; 
}; this.toString = function() { 
return arr.join("");//把append进来的数组ping成一个字符串 
}; 
}

今天在应用中突然发现join是一种把数组转换成字符串的好方法,故封装成对象使用了:
/** 
*把数组转换成特定符号分割的字符串 
*/ 
function arrayToString(arr,separator) { 
if(!separator) separator = "";//separator为null则默认为空 
return arr.join(separator); 
} /** 
* 查找数组包含的字符串 
*/ 
function arrayFindString(arr,string) { 
var str = arr.join(""); 
return str.indexOf(string); 
}
Javascript 相关文章推荐
浅谈javascript的数据类型检测
Jul 10 Javascript
javascript中attachEvent用法实例分析
May 14 Javascript
jQuery实现的fixedMenu下拉菜单效果代码
Aug 24 Javascript
Java中Timer的用法详解
Oct 21 Javascript
jQuery+css实现的tab切换标签(兼容各浏览器)
Jan 28 Javascript
jQuery仿京东商城楼梯式导航定位菜单
Jul 25 Javascript
Bootstrap基本组件学习笔记之下拉菜单(7)
Dec 07 Javascript
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
Dec 14 Javascript
JS异步加载的三种实现方式
Mar 16 Javascript
React Native第三方平台分享的实例(Android,IOS双平台)
Aug 04 Javascript
微信小程序 swiper组件构建轮播图的实例
Sep 20 Javascript
JavaScript中判断为整数的多种方式及保留两位小数的方法
Sep 09 Javascript
javascript的回调函数应用示例
Feb 20 #Javascript
JS的get和set使用示例
Feb 20 #Javascript
jQuery避免$符和其他JS库冲突的方法对比
Feb 20 #Javascript
JS 删除字符串最后一个字符的实现代码
Feb 20 #Javascript
js确认删除对话框效果的示例代码
Feb 20 #Javascript
多种方法实现load加载完成后把图片一次性显示出来
Feb 19 #Javascript
jquery无刷新验证邮箱地址实现实例
Feb 19 #Javascript
You might like
那些年一起学习的PHP(一)
2012/03/21 PHP
php实现保存submit内容之后禁止刷新
2014/03/19 PHP
Twig模板引擎用法入门教程
2016/01/20 PHP
PHP+JS三级菜单联动菜单实现方法
2016/02/24 PHP
php中分页及SqlHelper类用法实例
2017/01/12 PHP
PHP扩展Swoole实现实时异步任务队列示例
2019/04/13 PHP
Yii框架操作cookie与session的方法实例详解
2019/09/04 PHP
PHP开发api接口安全验证操作实例详解
2020/03/26 PHP
5个最佳的Javascript日期处理类库分享
2012/04/15 Javascript
js获取html页面节点方法(递归方式)
2013/12/13 Javascript
JavaScript四种调用模式和this示例介绍
2014/01/02 Javascript
jquery实现图片水平滚动效果代码分享
2015/08/26 Javascript
AngularJS利用Controller完成URL跳转
2016/08/09 Javascript
js文件中直接alert()中文出来的是乱码的解决方法
2016/11/01 Javascript
js中DOM三级列表(代码分享)
2017/03/20 Javascript
jquery append与appendTo方法比较
2017/05/24 jQuery
浅谈jquery中ajax跨域提交的时候会有2次请求的问题
2017/11/10 jQuery
关于echarts在节点显示动态数据及添加提示文本所遇到的问题
2018/04/20 Javascript
JavaScript数组,JSON对象实现动态添加、修改、删除功能示例
2018/05/26 Javascript
详解vuex数据传输的两种方式及this.$store undefined的解决办法
2019/08/26 Javascript
[01:13:59]LGD vs Mineski Supermajor 胜者组 BO3 第三场 6.5
2018/06/06 DOTA
python自带的http模块详解
2016/11/06 Python
Python+OpenCV实现车牌字符分割和识别
2018/03/31 Python
Django objects的查询结果转化为json的三种方式的方法
2018/11/07 Python
对Python的zip函数妙用,旋转矩阵详解
2018/12/13 Python
python打包成so文件过程解析
2019/09/28 Python
Python 生成VOC格式的标签实例
2020/03/10 Python
Python装饰器的应用场景代码总结
2020/04/10 Python
CSS3中Animation属性的使用详解
2015/08/06 HTML / CSS
英国家喻户晓的家居商店:The Range
2019/03/25 全球购物
英国时尚高尔夫服装购物网站:Trendy Golf
2020/01/10 全球购物
英国家居用品和床上用品零售商:P&B Home
2020/01/16 全球购物
社团活动总结书
2014/06/27 职场文书
中共广东省委常委会党的群众路线教育实践活动整改方案
2014/09/23 职场文书
2015年数学教师工作总结
2015/05/20 职场文书
基于python实现银行管理系统
2021/04/20 Python