1.数组的栈方法
push()
:可以接收任意数量的参数,把它们添加到数组的末尾,并返回修改后数组的长度
var color = [];
var count = color.push('red', 'green');
console.log(color); // ['red', 'green'];
console.log(count); // 2
pop()
:从数组末尾移出最后一项,减少数组的length值,返回移除的项。
var color = ['red', 'bule', 'yellow'];
var count = color.pop();
console.log(color) // ['red', 'bule']
console.log(color.length) // 2
console.log(count) // yellow
菜鸟发现pop()
方法在Chrome浏览器下是可以传递一个number类型的参数,如果传入参数number,则移除数组下标为number的那一项,返回值是移除的项,火狐浏览器不支持,因为菜鸟电脑上没有IE浏览器所以没有办法测试,大家电脑上有IE浏览器的可以测试一下,通过留言告诉我。
shift()
:移除数组的第一项并且返回该项,同时数组长度减1。
var num = [1, 2, 3, 4];
var count = num.shift();
console.log(num) // [2, 3, 4]
console.log(count) //1
unshift()
: 可以传入任意数量的参数,把它们添加到数组的前端,并且返回修改后的数组的长度
var num = [1, 2, 3, 4];
var count = num.unshift(5, 6, 7);
console.log(num) // [5, 6, 7, 1, 2, 3, 4]
console.log(count) //7
2.数组的排列方法
reverse()
: 反转数组的顺序
var val = [1, 2, 3, 4];
val.reverse();
console.log(val)// [4, 3, 2, 1]
sort()
调用每个数组项的toString()
转型方法,对数组做出升序排列。
var val = [0, 1, 10, 15, 5];
val.sort();
//因为sort()方法是按照字符串排序的,虽然数字5小于数字10,但在字符串进行比较时10在5的前面
console.log(val) //[0, 1, 10, 15, 5];
根据上面的例子可以看出sort()
方法不是排序的最佳方案。因此sort方法可以接收一个比较函数作为参数。
function compare(val1, val2){
if(val1 < val2) {
return -1;
}else if(val1 > val2) {
return 1;
}else {
return 0;
}
}
var val = [0, 1, 10, 15, 5];
val.sort(compare);
console.log(val); //[0, 1, 5, 10, 15]
当然也可以通过比较函数实现降序
function compare(val1, val2){
if(val1 < val2) {
return 1;
}else if(val1 > val2) {
return -1;
}else {
return 0;
}
}
var val = [0, 1, 10, 15, 5];
val.sort(compare);
console.log(val);//[15, 10, 5, 1, 0]
而对于数值类型或者valueOf()
方法返回数值类型的对象。可以使用一个更简单的比较函数
function compaer(val1, val2){
return val1 - val2;
}
var val = [0, 1, 10, 15, 5];
val.sort(compaer);
console.log(val)// [0, 1, 5, 10, 15]