一、增减数组元素的方法
我们可以通过push、pop、shift、unshift以及splice的方法对数组内的元素进行增减,甚至可以达到在指定位置增减元素的目的。
1.push( )方法
push( )方法是将一个或者多个元素添加到数组的末尾,并返回添加后数组的长度。
var arr = [1,2,3];
var c = arr.push(4);
console.log(arr);//[1,2,3,4]
console.log(c);//4
arr.push(5,6,7);
console.log(arr);//[1,2,3,4,5,6,7]
arr.push('number');
console.log(arr);//[1,2,3,4,5,6,7,"number"]
除此之外,还能结合apply方法合拼两个数组(但可传入参数个数有限制,总参数个数不能超过65536)
var colours = ['blue','black'];
var wormColours = ['red','yellos','origin'];
Array.prototype.push.apply(colours, wormColours);
console.log(colours);//["blue", "black", "red", "yellos", "origin"]
2.pop( )方法
pop( )方法是把数组中最后一个元素删除,并返回该元素的值。
var a = [1,2,3,4];
var c = a.pop();
console.log(a);//[1,2,3]
console.log(c);//4
3.shift( )方法
shift( )方法是把数组的第一个元素删除,并返回该元素的值。
var a = [1,2,3,4];
var c = a.shift();
console.log(a);//[2,3,4]
console.log(c);//1
4.unshift( )方法
unshift( )方法和push方法相似,也是给添加一个或多个元素,但是添加到的数组的开头,并返回新数组的长度。
var a = [2,3,4];
a.unshift(0,1);
console.log(a);//[0,1,2,3,4]
5.splice( )方法
和上述的数组方法相比,splice( )方法则丰富得多,它可以实现上述方法的所有效果。
var a = [1,2,3,4,5];
a.splice(0,1);//从数组a中下标为0的元素开始,删除1个元素。
console.log(a);//[2,3,4,5]
a.splice(1,2);//从数组a中下标为1的元素开始,删除2个元素。
console.log(a);//[2,5]
a.splice(0,0,1);//从数组a中下标为0的元素开始,删除0个元素,添加1(从第三个参数开始表示需要添加的元素)
console.log(a);//[1,2,5]
a.splice(a.length,0,6,7);//如果首个数字超出了数组的长度,就会从数组尾部添加元素。
console.log(a);//[1,2,5,6,7]
var b = a.splice(0,2);//splice方法的返回值为由删除的元素组成的数组,如果删除0个元素,则返回一个空数组。
console.log(b);//[1,2]
二、修改数组特征的方法
1.join( )方法
join( )方法是把一个数组或者类数组对象中的所有元素连接成一个字符串并返回,但此方法不会改变原数组。
var a = ['Hello','world'];
console.log(a.join());//"Hello,world" 默认是用','来连接里面的元素。
var b = ['Hello','world'];
console.log(b.join(''));//Helloworld 。
join( )里面传入的是用于分隔原数组里每个元素,如果不需要分隔,则用''
,中间没有空格;如果需要用一个空格,则用' '
,中间添加一个空格。如果不传入,则默认使用,
来分隔元素。
2.reverse( )方法
reverse( )方法适用于将数组中的元素的倒序排列。
var a = [1,2,3,4];
console.log(a.reverse());//[4,3,2,1]
3.sort( )方法
sort( )方法是对数组中的元素进行排序,并返回数组。根据mdn给出的提示:sort 排序不一定是稳定的。默认排序顺序是根据字符串Unicode码点。
var test = ['origin','banana','apples'];
console.log(test.sort);//["apples", "banana", "origin"]
var a = [1,4,33,20,2,10,11];
console.log(a.sort);//[1, 10, 11, 2, 20, 33, 4]输出结果跟我们预想的不大一样。。。。那是因为在unicode指针书序中。"11"在"2"的前面,"33"在"4"的前面所导致的。。
这时候,我们需要借助到比较,可以创建一个比较函数,用于排序:
function sortnumber (a,b) {
return a - b;//返回两者的差。
}
var a = [1,4,33,20,2,10,11];
console.log(a.sort(sortnumber));//[1, 2, 4, 10, 11, 20, 33]
这时候排序就正确了。
4.concat( )方法
concat( )方法是将一个或多个字符串与原组付出连接合并,形成一个新的字符串并返回。
var a = "Hello";
console.log(a.concat(", world"));//"Hello, world"