本文总结一些js数组中常用的方法。
1.数组中元素的 删除、添加
测试数据 为 : var arr = [1,2,3]; alert(arr); //1,2,3
(1) 添加元素
push() ------- 从数组的尾部添加元素。
arr.push(4);
alert(arr); // 1,2,3,4
unshift() -------从数组的头部添加元素。
arr.unshift(4);
alert(arr); //4,1,2,3
(2) 删除元素
pop()--------从数组的尾部进行删除。
arr.pop();
alert(arr); // 1,2
shift() ---------从数组的头部进行删除。
arr.shift();
alert(arr); // 2,3
2、数组中元素的排序
(1) 反转数组
reverse() ------- 颠倒数组中元素的顺序。
var a = [15,12,45,1];
a.reverse();
alert(a); // 1,45,12,15
(2) 将数组的值重新排序。
sort() ------- 将元素有序排列(从小到大 或者 从大到小)。
注意:sort()只能对字符串进行排序,如果对数字进行排序,会出现错误,所以为了避免该错误,要引入比较函数。
当a数组为字符串组成时:
var a = ['meta','html','javascript','zoo','boy'];
a.sort();
alert(a); // boy,html,javascript,meta,zoo 正常结果
当a数组为数字时:
var a = [12,45,2,7,65];
a.sort();
alert(a); // 12,2,45,65,7 显然该结果不是我们想要的结果
所以应该加上 比较函数:
var a = [12,45,2,7,65];
a.sort(function(num1,num2){
return num1 - num2;
});
alert(a); // 2,7,12,45,65 从小到大排序
var a = [12,45,2,7,65];
a.sort(function(num1,num2){
return num2 - num1;
});
alert(a); // 65,45,12,7,2 从大到小排序
3、数组的转换
(1)连接两个数组 (连接两个字符串 用“ + ”,连接数组用concat())。
当然字符串也可以用concat()方法进行连接
concat() --------- 将两个数组连接起来
var a = [1,2,3,4];
var b = [7,8];
alert(a.concat(b)); // 1,2,3,4,7,8
(2)join() -------- 数组转化为字符串
join() 有一个参数,表示连接数组的符号
var arr = [1,2,3,4];
alert(arr.join('-')); // 1-2-3-4
(3)split() -------将字符串转化为数组
split() 有一个参数,表示之前为连接字符串的符号
var a = 'a-b-c-d';
alert(a.split("-")); // a,b,c,d
(4) slice()----------截取数组中的某一段
如果有参数是负数,则用数组长度加上该负数来确定长度。
slice() 有一个参数时,表示开始位置,从该位置截取到末尾
var a = [54,4,5,654,45];
alert(a.slice(3)); // 654,45
slice() 有两个参数,第一个表示开始的位置,第二个表示结束的位置(但不包括该位置)
var a = [54,4,5,654,45];
alert(a.slice(2,3)); // 5
(5) splice()---------- 可以对数组进行插入、删除、替换 (这是一个非常强大的方法)
注意: splice() 方法是在修改数组本身的值.
删除元素 --------------- splice(开始位置,长度);
var a = [54,4,5,654,45];
a.splice(1,2)
alert(a); // 54,654,45
插入元素 --------------- splice(开始位置,0,元素);
var a = [54,4,5,654,45];
a.splice(1,0,'15','100');
alert(a); // 54,15,100,4,5,654,45
替换元素 ---------------splice(开始位置,替换的个数,元素)
var a = [54,4,5,654,45];
a.splice(1,2,'55','11');
alert(a); // 54,55,11,4,5,654,45
一道某公司的笔试题!正好用到上面的方法!
将 一句话 倒序输出出来,包括标点符号!?
var a = "I come from China.";
var b = a.split(" ");
b.reverse();
alert(b.join(" ")); // China. from come I
本文由本人原创,若有不对的地方请大家及时指出!谢谢大家!