JavaScript中的数组知识点全总结

来源:互联网 发布:长安大学网络教育 编辑:程序博客网 时间:2024/05/16 11:56

一.数组的创建:
1. var aObj=new Array([Size]);
2. var aObj=new Array(‘a’,’b’,’c’);
3.var aObj=[‘a’,’b’,’c’]; (直接定义法)
注:var aObj=[,,]; //数组中有两个元素,undefined

二.数组的元素添加和删除:
1.栈操作:push()、pop()方法从数组末尾增加和减少一个或多个元素;
2.队列操作:shift()方法从数组首部移出一个元素,push()方法从数组末尾插入一个元素;
unshift()方法从数组的首部插入一个元素; 注:以上这些方法都会更改数组的长度。
3.使用delete运算符删除数组元素:

a=[1,2,3];
delete a[1]; //数组a在索引1处不在有元素
1 in a //false
a.length //3,不影响数组长度,即长度不变

(此方法删除数组元素类似于赋值为undefined)
三.数组的截取和合并:
1.截取: aObj.slice(start, [end]);
注:(参数说明:参数为索引,取前不取后;索引为负数,则从倒[后]数计;)

var a=[1,2,3,4,5];
a.slice(3); //[4,5]
a.slice(1,-1); //[2,3,4]
a.slice(-3,-1); //[3,4]
2.合并: aObj.concat(item1,item2,item3。。。);
该方法只合并元素,并入到一个数组中:

var a=[1,2,3];
a.concat([4,5],[6,7]) //[1,2,3,4,5,6,7]
a.concat(4,[5,[6,7]]) //[1,2,3,4,5,[6,7]]
四、数组元素的排序
aObj.reverse(); //反转元素(最前的排到最后、最后的排到最前),返回数组地址

aObj.sort(); //对数组元素排序,返回数组地址

五、数组元素的字符串化
aObj.join(separator); //返回字符串,这个字符串将数组的每一个元素值连接在一起,中间用 separator 隔开。

toLocaleString 、toString 、valueOf:可以看作是join的特殊用法,不常用。

六、将字符串变为数组:
使用split方法:

str = “s-aaa-sss-eee-www”;
targetArr = str.split(“-”); //[‘s’,’aaa’,’sss’,’eee’,’www’]

七、强大的数组操作方法
splice( para1,para2,val1,val2… ):项数组中添加和删除项,para1表示起始位置索引,para2表示删除的个数,后面的变量表示要添加的项的值,注 意是从para1处开始删除和添加的。

    注意 : 参数为负数的问题,如果para1为负数,则会从数组结尾处计算,而para2为负数或0的话不会执行删除操作。

var a=[1,2,3,4];console.log(a.splice(-2,1,'a','b'));  //[3]console.log(a);    //[1, 2, "a", "b", 4]console.log(a.splice(1,2,[1,2],3));   //[2, "a"]console.log(a);     //[1, [1,2], 3, "b", 4]

八.数组中删除重复元素的方法
1.建立一个新数组,在新数组中判断是否可以获取到原数组中值的索引,来消除原数组中重复的值;
//var student = [‘qiang’,’ming’,’tao’,’tao’,’liang’,’you’,’qiang’,’li’];
var student = [1,2,2,2,3,4,4,5,6,6];
function unique1(arr){
var Tarr=new Array();
for (var i = 0; i < arr.length; i++) {
if(Tarr.indexOf(arr[i])<0)
Tarr.push(arr[i]);
}
return Tarr;
}
var quarr1 = unique1(student);
alert(quarr1);
2.通过调换原数组中键值的位置,自动删除重复的元素,这种方法不太好理解;
//var student = [‘qiang’,’ming’,’tao’,’tao’,’liang’,’you’,’qiang’,’li’];
var student = [1,2,2,2,3,4,4,5,6,6];
function unique1(arr){
var tmp = new Array();
for(var m in arr){
tmp[arr[m]]=1;
}
alert(tmp);
//再把键和值的位置再次调换
var tmparr = new Array();

for(var n in tmp){
tmparr.push(n);
}
return tmparr;
}
var quarr=unique1(student);
alert(quarr);
这两种方法相比较而言,第一种方法更好理解,方便操作,第二种虽不好理解但是也是一种特殊的思路值得学习和研究。

0 0