一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第5天,点击查看活动详情。
我们在日常工作中关于数组的操作,我们除了删除,插入元素,还有对数组中元素进行重新排列顺序,比如常见的把数组的顺序反转过来。 这个时候就用上了 reverse() 方法,这个方法可以把数组中项的位置反转过来。注意:它直接反转的是原数组。
var arr = [1,2,3,4]
var arr2 = arr.reverse()
console.log(arr) //[4,3,2,1]
console.log(arr2) //[4,3,2,1]
- sort() 升序排列数组。 这个方法可以把数组中的元素,按照升序进行排列。最小的值在最前面,最大的值排列在最后面。 需要注意的是,这个方法是比较的 字符串的值,因为他在比较多时候会用toString()这个方法,先把值转变成字符串,然后在进行比较。那么如果是数组,经过toString()转变,它其实也是在对字符串进行比较,而不是数字的大小。
var arr = [4,13,6,25]
var arr2 = ['a','c','b']
console.log(arr.sort()) //[13,25,4,6]
console.log(arr2) //['a','b','c']
那么假如我们需要对数组中的数字进行大小排序。可以传入一个函数。这个函数可以传两个参数。
- 如果我们想要第一个参数位于第二个参数前面的话,就返回一个负数
- 如果我们想要第一个参数位于第二个参数后面的话,就返回一个正数
- 如果两个参数相等的情况下,那么就返回一个零
function arrSort(v1,v2){
if(v1 < v2){
retrun -1
}else if(v1 > v2){
retrun 1
}else{
return 0
}
var arr = [4,13,6,25]
console.log(arr.sort(arrSort)) //[4,6,13,25]
好、我们现在可以对数组中的数字进行升序的排序,同理我们也可以对他进行降序的排序,著需要修改 我们定义的那个函数中,判断的返回值就可以了
function arrSort(v1,v2){
if(v1 > v2){
retrun -1
}else if(v1 < v2){
retrun 1
}else{
return 0
}
var arr = [4,13,6,25]
console.log(arr.sort(arrSort)) //[25,13,6,4]
我们对数组中元素的反转,排序等一些操作是经常用到的。熟练掌握这些方法可以大大提升我们的工作效率。