注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

天朝布衣田中码农参上

苦逼码农的点点滴滴,请多多指教!

 
 
 

日志

 
 
 
 

Js有关数组的操作方法  

2016-07-31 22:39:16|  分类: JavaScript |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
Js中针对数组操作的方法还是比较多的,这里仅是简略列总结一下,也算是温故而知新吧[这里强调一下,Js只有一维数组,虽然可以变通使用多维数组,但是这些函数都只是针对一维数组]。
1)push和pop
两个方法只会对数组从尾部进行压入或弹出,而且是在原数组进行操作,任何的改动都是会影响到操作的数组。push(args)可以每次压入多个元素,并返回更新后的数组长度。pop()函数每次只会弹出最后一个结尾的元素,并返回弹出的元素,如果是对空组数调用pop()则返回undefined。 如果参数是数组则是将整个数组当做一个元素压入到原来的数组当中[因为Js只有一维数组的概念]。
2)unshift和shift
这两个方法都是通过对数组的头部进行的操作,其他基本跟push和pop类似。
3)splice和slice
虽然很类似,但其实完全不同。splice(start,deleteCnt,args) 中的start表示开始操作下标,deleteCnt表示从开始下标开始(包括该元素)要删除的元素个数,删除操作返回删除的元素。args表示用来替换删除掉的那些元素(可以有多个参数),start和deleteCnt必须为数字,如果不是数字尝试转换,转换失败当做0来处理。splice必须至少有一个start元素,否则不做任何操作。deleteCnt不存在表示删除start及后面的全部元素(IE下,取0不做删除)。start可以为负数,表示从数组右边结尾处开始计算。deleteCnt如果为负数不做删除,因为不可能删除负个元素。而slice(start,end)方法可从已有的数组中返回一个新的数组,包含从 start 到 end (不包括该元素)中的元素。该方法并不会修改数组,而是返回一个子数组。
4)concat
在现有数组后面追加数组,并返回新数组,不影响现有数组。
5)join
用指定间隔符连起来,把数组转为字符串。这里请注意,如果不用默认的字符的话,会在生成的字符串中包含多个空格。
6)sort和reverse()
sort(function)是针对原数组进行的排序,不会生成新的数组。默认sort()不带参数时按照数组中的元素转换成字符串进行比较,比较的时候按照字符在字符编码中的顺序进行排序,每个字符都有一个唯一的编码与其对应。如果需要自定义排序算法,请自行定义。而reverse()则是正好跟sort排序相反。
下面是如上函数的简单示范代码:

<script>
var testarr=[];
console.log(testarr.pop());//显示undefined
console.log(testarr.shift());//显示undefined
testarr.push("237h.com");//数组变为["237h.com"]
testarr.unshift("593668.com");//数组变为["593668.com","237h.com"]
console.log(testarr.pop());//显示"237h.com"
console.log(testarr.shift());//显示"593668.com",现在数组又为空了。
testarr=["237h.com","593668.com","9zfx.com"];
testarr.splice(0,1); //现在数组变为["593668.com","9zfx.com"]
console.log(testarr.join());
testarr=testarr.concat("237h.com");//现在数组变为["593668.com","9zfx.com","237h.com"]
console.log(testarr.join());
testarr.sort(); //排序后变成["237h.com","593668.com","9zfx.com"]
console.log(testarr.join());
testarr.reverse();//逆排序后变成["9zfx.com","593668.com","237h.com"]
console.log(testarr.join());
function mySort(left,right){
return left.substring(3,1)-right.substring(3,1);//以第三个字母来排序
}
//自定义排序
testarr.sort(mySort);
console.log(testarr.join()); //9zfx.com,237h.com,593668.com
testarr.reverse(mySort);
console.log(testarr.join());//593668.com,237h.com,9zfx.com
</script>

而相应的调试结果如下:
Js有关数组的操作方法 - sinsunson - 天朝布衣田中码农参上
 
以上没有什么太过高深的技巧,仅仅是希望对大家操作数组时有点帮助。
  评论这张
 
阅读(1)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018