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动态调整TextArea高度的代码
Dec 28 Javascript
jQuery实现表头固定效果的实例代码
May 24 Javascript
javascript实现漂亮的拖动层,窗口拖拽特效
Apr 24 Javascript
javascript原始值和对象引用实例分析
Apr 25 Javascript
AngularJs 弹出模态框(model)
Apr 07 Javascript
jQuery简单实现title提示效果示例
Aug 01 Javascript
Vue.js每天必学之表单控件绑定
Sep 05 Javascript
BootStrap实现文件上传并带有进度条效果
Sep 11 Javascript
vue 登录滑动验证实现代码
Aug 24 Javascript
微信小程序全局变量GLOBALDATA的定义和调用过程解析
Sep 23 Javascript
使用js实现单链解决前端队列问题的方法
Feb 03 Javascript
JavaScript设计模式--简单工厂模式实例分析【XHR工厂案例】
May 23 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
第六节--访问属性和方法
2006/11/16 PHP
PHP安全性漫谈
2012/06/28 PHP
php限制上传文件类型并保存上传文件的方法
2015/03/13 PHP
解决安装WampServer时提示缺少msvcr110.dll文件的问题
2017/07/09 PHP
Laravel 加载第三方类库的方法
2018/04/20 PHP
让你的网站可编辑的实现js代码
2009/10/19 Javascript
一个原生的用户等级的进度条
2010/07/03 Javascript
jQuery实现自动调整字体大小的方法
2015/06/15 Javascript
js 动态给元素添加、移除事件的实现方法
2016/07/19 Javascript
前端面试题及答案整理(二)
2016/08/26 Javascript
js判断所有表单项不为空则提交表单的实现方法
2016/09/09 Javascript
AngularJS控制器controller给模型数据赋初始值的方法
2017/01/04 Javascript
js构造函数创建对象是否加new问题
2018/01/22 Javascript
p5.js入门教程之图片加载
2018/03/20 Javascript
从源码里了解vue中的nextTick的使用
2018/11/22 Javascript
Node.js net模块功能及事件监听用法分析
2019/01/05 Javascript
基于Express框架使用POST传递Form数据
2019/08/10 Javascript
Vue项目前后端联调(使用proxyTable实现跨域方式)
2020/07/18 Javascript
Python实现批量下载文件
2015/05/17 Python
详解Python中find()方法的使用
2015/05/18 Python
python读取文本中的坐标方法
2018/10/14 Python
树莓派实现移动拍照
2019/06/22 Python
纯CSS3发光分享按钮的实现教程
2014/09/06 HTML / CSS
德国百年厨具品牌WMF美国站:WMF美国
2016/09/12 全球购物
Boutique 1美国:阿联酋奢侈时尚零售商
2017/10/16 全球购物
德国Discount-Apotheke中文官网:DC德式康线上药房
2020/02/18 全球购物
企业办公室岗位职责
2014/03/12 职场文书
警察群众路线整改措施
2014/09/26 职场文书
2015中秋节晚会主持词
2015/07/01 职场文书
自荐信大全
2019/03/21 职场文书
2019学校运动会开幕词
2019/05/13 职场文书
Oracle 区块链表创建过程详解
2021/05/15 Oracle
Golang二维数组的使用方式
2021/05/28 Golang
Python中glob库实现文件名的匹配
2021/06/18 Python
JS创建或填充任意长度数组的小技巧汇总
2021/10/24 Javascript
USB TYPE-C 或将成为所有智能手机充电标准
2022/04/21 数码科技