JS数组相关知识整理(二)

207 阅读2分钟

push()、pop()、shift()、unshift()方法

push()方法接受任意数量的参数,并将他们添加到数组的末尾

pop()方法删除数组的最后一项,同时减少数组的长度

shift()方法删除数组的第一项并返回它,然后减少数组长度

unshift()方法在数组开头添加任意多个值,然后返回新的数组长度

1、push() 和 pop() 方法,可以实现类似栈的行为,栈的特点是后入先出,用push()方法将元素推入数组的末尾,然后再用pop()取出数组末尾的元素,这样就实现了元素的后入先出的效果

let person = [];
let count = person.push('马云禄','赵云');   //将数组推入两个元素
console.log(count)                         // 2
console.log(person)                        //['马云禄', '赵云']
person.push('关兴')                        //再往数组里面推入一个元素
console.log(person)                        //['马云禄', '赵云', '关兴']
let item = person.pop()                    //取出数组最后推入的元素
console.log(item)                          //关兴
console.log(person)                        //['马云禄', '赵云']

2、push() 和 shift() 方法,可以实现类似对了的行为。队列的特点是先入先出,同样用push()向数组推入元素,然后用shift()的方法取出数组的首位元素,这样就实现数组的先入先出的效果

let person = [];                          
person.push('张飞','夏侯氏');               // 将数组推入两个元素 
console.log(person);                       // ['张飞','夏侯氏']
person.push('张星彩');                      // 再推入一个元素
let item = person.shift();                 // 取出数组的第一项
console.log(item)                          // 张飞
console.log(person)                        //['夏侯氏', '张星彩']

3、pop(), unshift() 方法, 可以实现数组反向的类似对列的行为。通过unshift()方法在数组的头部添加元素,然后通过pop()方法在数组末尾取出元素,也可以实现元素的先入先出的效果

let person = ['关平'];                //建立有一个元素的数组                
person.unshift('关羽');               //在数组的头部添加一个元素 
console.log(person)                   //['关羽', '关平']                                  
let item = person.pop();              // 取出数组数组的最后一项
console.log(item)                     // 关平
console.log(person)                   // ['关羽']

sort()、reverse()方法

sort()方法按照Unicode的方法进行正向排列。这导致进行数字排序会出现如下的结果,数字100会在4,5,9的前面

let arr = [1,4,5,9,0,100, 200]      //创建一个乱序的数组  
arr.sort()                 //将数组进行排序
console.log(arr)           //[0, 1, 100, 200, 4, 5, 9]

由于sort()是一个高级函数,所以可以接受一个比较函数来实现数字的排序,如下面的例子所示,如果将比较函数的x-y变成y-x,则数字就会倒叙输出。

let arr = [1,4,5,9,0,100, 200,]     
function compare(x,y){             //创建一个比较函数
    return x-y
}
console.log(arr.sort(compare))    //[0, 1, 4, 5, 9, 100, 200]