最近工作中用到数组和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.更多的内容请看我的 个人博客(测试版)
本文详细介绍了JavaScript中数组的定义、增删查改操作、遍历方法及常用数组方法如concat、join、reverse等,并探讨了返回创建对象的函数及原型属性的测试。
231

被折叠的 条评论
为什么被折叠?



