数组的方法栈方法和排序方法,pop、push、shift、sort

在这里插入图片描述
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]
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值