js array 数组总结

最近工作中用到数组和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.更多的内容请看我的  个人博客(测试版)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值