数组的无数方法(一)

226 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第5天,点击查看活动详情

改变原数组的方法:

1. pop() 方法从数组中删除最后一个元素:

var arr = ['Tom','Jack','Jerry']
var x = arr.pop()  //arr = ['Tom','Jack'], x = 'Jerry'

2.push()方法(在数组结尾处)向数组添加一个新的元素:

var arr = ['Tom','Jack','Jerry']
arr.push('zom') // arr = ['Tom','Jack','Jerry','zom']

3.shift() 方法会删除首个数组元素,并把所有其他元素“位移”到更低的索引。

var arr = ['Tom','Jack','Jerry']
var x = arr.shift() // arr = ['Jack','Jerry'], x = 'Tom'

4.unshift() 方法(在开头)向数组添加新元素,并“反向位移”旧元素:

var arr = ['Tom','Jack','Jerry']
arr.unshift('Jim') // arr = ['Jim','Tom','Jack','Jerry']

5.splice()方法,拼接数组,可用于删除覆盖添加值。接收多个个参数:

  1. 修改的起始位置,
  2. 要删除的元素个数,
  3. 其余的参数是要添加的元素,
  4. 返回删除的数组
var arr = ['Tom','Jack','Jerry']
var x = arr.splice(1,0,'Jim','Zom') // arr = ["Tom", "Jim", "Zom", "Jack", "Jerry"], x = []
var y = arr.splice(1,1) // arr = ["Tom", "Zom", "Jack", "Jerry"], y = ['Jim]

6.sort() 排序方法,会以字符串的比较方法来对数组中所有的元素转为字符串,然后在进行比较,哪怕所有元素都是数字。

  1. 可以跟一个函数,函数会回传两个参数,下一个元素,和当前元素。可以通过这个函数来修改上面的问题。
var arr = ['c','d','a','b','e']
arr.sort() // arr = ['a','b','c','d','e']
var arr1 = [1,31,13,3]
arr1.sort() // arr1 = [1,13,3,31]
arr1.sort(function(va1,va2){
    if(va1 < va2){
         return -1
    }else{
        return 1
    }
}) // arr1 = [1,3,13,31]
首先会比较31131>1不用交换位置,比较1331,需要交换位置的,然后在比较131,不需要交换位置,
在比较313需要交换位置,在比较31

7. reverse()方法:反转数组项的顺序。

var arr = ['Tom','Jack','Jerry']
arr.reverse() // arr = ['Jerry', 'Jack', 'Tom'] 原数组已经发生改变了。

不改变原数组的方法

1.concat()方法通过合并(连接)现有数组来创建一个新数组:

  1. 跟要合并的数组,可以不止一个数组
  2. 返回合并之后的数组,对元素组没有影响
var arr = ['Tom','Jack','Jerry']
var arr1 = ['Sky','Blue']
var arr2 = arr.concat(arr1) // arr2 = ['Tom','Jack','Jerry','Sky','Blue']

2.slice()方法,从数组中切出一个新的数组。

  1. 起始剪切位置
  2. 结束位置(不包括),可以不传,默认会剪切起始位置之后的所有元素。
var arr = ['Tom','Jack','Jerry','Sky','Blue']
var arr1 = arr.slice(2) // arr1 = ['Jerry','Sky','Blue']
var arr2 = arr.slice(2,4) // arr2 = ['Jerry','Sky']

join()方法,将数组的元素组起一个字符串。

  1. 接收一个参数,即元素的连接符,可以不回传,默认以','作为分隔符。
  2. 返回合并之后的字符串。
var arr = ['Tom','Jack','Jerry']
var str = arr.join() // str = Tom,Jack,Jerry
var str = arr.join('-') // str = Tom-Jack-Jerry