javascript 引用类型 - Array与数据结构和重排序

ECMAScript 和其他语言一样,也是有类似数据结构的方法和行为,可以利用数组的下面几个方法,可以像数据结构一样使用数组 。
unshift() 方法可以接受任意参数,把他们逐个添加到数组前端,并返回修改后的数值长度。
push()方法可以接受任意参数,把他们逐个添加到数组末尾,并返回修改后的数值长度。
shift()方法从数组前端移除最先的一项,减少数组的length值,然后返回移除项。
pop()方法从数组末尾移除最后一项,减少数组的length值,然后返回移除的项。

栈方法
数据可以表现得像栈一样(后进先出),可以限制插入和删除项的数据结构。在栈中项的插入(叫做推入)和移除(叫做弹出),只发生在一个位置--栈的顶部。所以ECMAScript为数组专门提供了push()和pop()方法,实现类似栈的行为。

队列方法
队列的数据结构的访问规则是先进先出,在队列的列表的末端添加项,从列表的前端移除项。可以结合push()和sthift()方法,可以像队列一样使用数组。

重排序
默认数组定义后,会按照定义的顺序排序,也可以用两个重排序的方法排序:reverse() 和sort()。通常情况下,reverse() 和sort()方法会调用每个数组项的toString()转型方法,然后比较得到的字符串,以确定如何排序。
关于这个,需要探讨javascript 中的数组排序函数sort()和reverse(),因为官方说明,这两个排序函数是可以带有参数的,而且这个参数必须是个函数。

function compare(v1,v2){
if(v1<v2){
return -1;
}else if(v1>v2){
return 1;
}else{
return 0;
}
}
var valuees=[0,1,10,15,5,30];

valuees.sort(compare);    // 返回的结果[0, 1, 5, 10, 15, 30]

要说明一下,排序算法是离不开 冒泡算法的,这里同样是使用了冒泡算法。逐个比较两个项,如果返回-1,则交换升级位置。其实上面例子的方法可以用一个跟个简单的比较函数来表示。就是 这个函数只要返回第二个值减去第一个值。
function compare(v1,v2){
return v2-v1;
}









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_Draven

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值