js array 数组总结
程序员文章站
2022-04-04 19:42:37
...
最近工作中用到数组和js对象比较多,这里先总结一下数组。
1.数组的定义
var array1= new Array(); var array2=new Array(6); var array3=new Array(['a','b']); var array4=[]; var array5=[1,"a"];
说明:js和java数组不太一样,他的数组长度是可以变化的,类似Java的List
array2虽然定义数组长度是6,但是他可以增加其内容改变其长度。
2.增
function addTest() { var addArray=[]; //初始化一下 addArray.push("a"); //将新元素添加到数组的最后(入队),并返回新数组的长度 alert("addArray数组长度:"+addArray.push("b")); addArray.unshift("c"); //将新元素放到数组的最开始(入栈),并返回新数组的长度 alert("addArray数组长度:"+addArray.unshift("d")); var temp=addArray.splice(2,1,"e","f"); //将新元素插入到指定的位置,返回被删除的元素 //从index:2的位置删除1个元素,并添加e,f进入数组 alert(temp); alert(addArray); //结果:d,c,e,f,b }
说明:
1.js数组三种新增方式push、unshift、splice
2.三种方式可以添加单个元素,也可以添加多个元素/数组
3.删
function delTest() { var delArray=["a","b","c","d"]; var delObj=delArray.pop(); //删除最后一个元素,并返回该元素(出队) alert(delObj); //结果:d delObj=delArray.shift(); //删除第一个元素,并返回该元素(出栈) alert(delObj); //结果:a delObj=delArray.splice(1,1); //从index:1的位置删除1个元素 alert(delObj) //结果:c alert(delArray); //结果:b }
4.查 和 改
function ruTest() { var array=["a","b","c","d"]; alert(array[1]); array[1]="b1"; alert(array); }
5.遍历
function iteratorTest() { var array=["a","b","c","d"]; //方式一:for in for(var i in array) { alert(i+":"+array[i]); } //方式二:传统for for(var i=0;i<array.length;i++) { alert(i+":"+array[i]); } }
6.一些方法
1.concat:拼接元素,并返回结果
2.join:使用指定的分隔符把数组拼成字符串
3.reverse:反序输出,会改变当前数组
4.slice(start,end):从数组中取出,半开半闭区间
5.sort:排序
function otherTest() { var array=["a","b","c","d"]; var array1=["e","f"]; alert("concat:"+array.concat("z",array1)); alert("join:"+array.join("#")); alert("reverse:"+array.reverse()); alert("slice:"+array.slice(1,3)); alert("sort:"+array.sort()); }
说明:
1.concat:不会改变当前的数组,他会返回一个拼接好的数组副本
2.concat:拼接的内容可以是单个元素,也可以是数组,并且可拼接多个
3.reverse:是会改变但前数组的
4.slice:是一个半开半闭的区间,例如:slice(1,3):取的是index:1和index:2
5.sort:一种自然排序,数字和字母
7.返回创建对象的函数
function constructorTest() { var testArray=new Array(); alert(testArray.constructor); alert((new Date()).constructor); alert(typeof(testArray.constructor)); //返回的是一个函数 }
8.原型属性测试
function prototypeTest() { //对Array进行扩展 Array.prototype.myMethod=function(param){ alert(param+"我自己扩展的方法!")}; var testArray=new Array(); testArray.myMethod("hi"); //扩展后所有的Array对象都具有这个方法 } //可以看到原型扩展是全局的,这里并没有原型扩展语句 但是新创建的Array仍然有这个方法 function prototypeTest1() { var testArray=new Array(); testArray.myMethod("hello"); }
声明:
1.原创文章,转载请标明并加本文连接。
2.文章反映个人愚见,如有异议欢迎讨论指正
3.更多的内容请看我的 个人博客(测试版)