向JavaScript的数组中添加元素的方法小结
在数组的开头添加新元素-unshift()
源代码:
<!DOCTYPEhtml>
<html>
<body>
<pid="demo">Clickthebuttontoaddelementstothearray.</p>
<buttononclick="myFunction()">Tryit</button>
<script>
functionmyFunction()
{
varfruits=["Banana","Orange","Apple","Mango"];
fruits.unshift("Lemon","Pineapple");
varx=document.getElementById("demo");
x.innerHTML=fruits;
}
</script>
<p><b>Note:</b>Theunshift()methoddoesnotworkproperlyinInternetExplorer8andearlier,thevalueswillbeinserted,butthereturnvaluewillbe<em>undefined</em>.</p>
</body>
</html>
测试结果:
Lemon,Pineapple,Banana,Orange,Apple,Mango
在数组的第2位置添加一个元素-splice()
源代码:
<!DOCTYPEhtml>
<html>
<body>
<pid="demo">Clickthebuttontoaddelementstothearray.</p>
<buttononclick="myFunction()">Tryit</button>
<script>
functionmyFunction()
{
varfruits=["Banana","Orange","Apple","Mango"];
fruits.splice(2,0,"Lemon","Kiwi");
varx=document.getElementById("demo");
x.innerHTML=fruits;
}
</script>
</body>
</html>
测试结果:
Banana,Orange,Lemon,Kiwi,Apple,Mango
数组的末尾添加新的元素-push()
源代码:
<!DOCTYPEhtml>
<html>
<body>
<pid="demo">Clickthebuttontoaddanewelementtothearray.</p>
<buttononclick="myFunction()">Tryit</button>
<script>
varfruits=["Banana","Orange","Apple","Mango"];
functionmyFunction()
{
fruits.push("Kiwi")
varx=document.getElementById("demo");
x.innerHTML=fruits;
}
</script>
</body>
</html>
测试结果:
Banana,Orange,Apple,Mango,Kiwi
下面就提供一下上文中的一些函数
数组的创建
vararrayObj=newArray();//创建一个数组
vararrayObj=newArray([size]);//创建一个数组并指定长度,注意不是上限,是长度
vararrayObj=newArray([element0[,element1[,...[,elementN]]]]);创建一个数组并赋值
要说明的是,虽然第二种方法创建数组指定了长度,但实际上所有情况下数组都是变长的,也就是说即使指定了长度为5,仍然可以将元素存储在规定长度以外的,注意:这时长度会随之改变。
数组元素的添加
arrayObj.push([item1[item2[...[itemN]]]]);//将一个或多个新元素添加到数组结尾,并返回数组新长度
arrayObj.unshift([item1[item2[...[itemN]]]]);//将一个或多个新元素添加到数组开始,数组中的元素自动后移,返回数组新长度
arrayObj.splice(insertPos,0,[item1[,item2[,...[,itemN]]]]);//将一个或多个新元素插入到数组的指定位置,插入位置的元素自动后移,返回""。
数组的元素的访问
vartestGetArrValue=arrayObj[1];//获取数组的元素值
arrayObj[1]="这是新值";//给数组元素赋予新的值
数组元素的删除
arrayObj.pop();//移除最后一个元素并返回该元素值
arrayObj.shift();//移除最前一个元素并返回该元素值,数组中元素自动前移
arrayObj.splice(deletePos,deleteCount);//删除从指定位置deletePos开始的指定数量deleteCount的元素,数组形式返回所移除的元素
数组的截取和合并
arrayObj.slice(start,[end]);//以数组的形式返回数组的一部分,注意不包括end对应的元素,如果省略end将复制start之后的所有元素
arrayObj.concat([item1[,item2[,...[,itemN]]]]);//将多个数组(也可以是字符串,或者是数组和字符串的混合)连接为一个数组,返回连接好的新的数组
数组的拷贝
arrayObj.slice(0);//返回数组的拷贝数组,注意是一个新的数组,不是指向
arrayObj.concat();//返回数组的拷贝数组,注意是一个新的数组,不是指向
数组元素的排序
arrayObj.reverse();//反转元素(最前的排到最后、最后的排到最前),返回数组地址
arrayObj.sort();//对数组元素排序,返回数组地址