UDN-企业互联网技术人气社区

板块导航

浏览  : 426
回复  : 2

[原生js] JS中数组Array的用法示例介绍

[复制链接]
狗尾巴草的头像 楼主
发表于 2016-12-30 13:38:01 | 显示全部楼层 |阅读模式
  这篇文章主要介绍了JS中数组Array的用法,需要的朋友可以参考下

  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处理字符串的方法:
  
  复制代码 代码如下:

  1. /**
  2. * 字符串处理函数
  3. */
  4. function StringBuffer() {
  5. var arr = new Array;
  6. this.append = function(str) {
  7. arr[arr.length] = str;
  8. };

  9. this.toString = function() {
  10. return arr.join("");//把append进来的数组ping成一个字符串
  11. };
  12. }
复制代码

  今天在应用中突然发现join是一种把数组转换成字符串的好方法,故封装成对象使用了:

  1. /**
  2. *把数组转换成特定符号分割的字符串
  3. */
  4. function arrayToString(arr,separator) {
  5. if(!separator) separator = "";//separator为null则默认为空
  6. return arr.join(separator);
  7. }

  8. /**
  9. * 查找数组包含的字符串
  10. */
  11. function arrayFindString(arr,string) {
  12. var str = arr.join("");
  13. return str.indexOf(string);
  14. }
复制代码
发表于 2016-12-30 13:38:33 | 显示全部楼层
LZ是闲人,天天发帖,坚定完毕
使用道具 举报

回复

发表于 2016-12-31 10:24:24 来自手机 | 显示全部楼层
我是被标题吸引进来的
使用道具 举报

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们
联系我们
  • 电话:010-86393388
  • 邮件:udn@yonyou.com
  • 地址:北京市海淀区北清路68号
移动客户端下载
关注我们
  • 微信公众号:yonyouudn
  • 扫描右侧二维码关注我们
  • 专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041 京ICP备05007539号-11 京公网网备安1101080209224 Powered by Discuz!
快速回复 返回列表 返回顶部