操作数组的方法
delete
可以借助delete运算符 能删除数组元素,因为Array也是对象,数组元素实际上与对象属性是一样。
1 | var a = [1,2,3,'hello',4,5];//定义数组 |
push
push()方法能够把一个或多个元素添加到数组的最后(尾部),然后返回添加后的数组长度
1 | var a = [] // 定义数组 模拟空栈 |
pop
pop()方法操作刚好相反,它能够删除数组中最后一个元素,并返回这个元素的值
1 | var arr = [1,2,3,4,5] |
unshift
unshift()方法是在数组头部执行操作,可以包含多个参数,并把这些参数一次性插入数组的头部,第一个参数为数组新的元素0,第二个参数为新的元素1,以此类推。这与一次次插入元素是不同的
1 | var arr = [0]// 定义数组 |
如果分开操作,结果就不同了
1 | var arr = [0] |
shift
shift()方法它是将数组第一个元素移除,并返回该元素的值,然后将余下所有元素往前移一位,以填补数组头部的空缺。如果数组为空,shift()将不进行任何操作,返回undefined
1 | var arr = [0,1,2] |
【温馨提示】unshift 和 shift 方法也是在原数组上进行修改,而不是创建新数组
示例 pop()和unshift()配合使用 可以模拟队列数据结构的操作模式 即先出先进
1 | var arr = [1,2,3,4,5] |
push 与 shift 结合使用 模拟队列数据结构的操作模式 即 先进先出
1 | var a = [1,2,3,4] |
concat
concat是一个比较特殊的数组元素添加方法 他采用粘接的方式把参数添加到数组中
1 | var arr = [1,2,3,4,5] |
concat 方法 比较特殊 使用应注意下面几个问题
- concat()方法可以跟随多个参数,并把他们作为元素按顺序连接到数组的尾部。如果参数是数组,则concat()方法会把它打散分别作为单独的元素连接到数组的尾部
1
2
3
4
var a = [1,2,3,4,5]
var b = a.concat([1,2,3],[4,5])
console.log('数组-->',b,'数组长度--->',b.length);//数组--> [1, 2, 3, 4, 5, 1, 2, 3, 4, 5] 数组长度---> 10
虽然concat()方法能够打散一维数组,但是他不会递归打散参数数组中包含的数组
1 | var a = [1,2,3,4,5] |
- concat()方法将创建并返回一个新数组 而不是在原来数组基础上添加新元素。所以 希望在原数组基础上添加元素,建议使用push 和 unshift 来实现 但是 push和unshift 不能打散参数数组,而是把它作为单数的参数执行添加操作。
##splice
splice()方法是增加和删除多个数组元素的通用方法。这个方法的参数比较复杂,其中第1个参数为操作的起始下标位置,第2个参数指定要删除元素的个数,第3个及后面的所有不定参数为将要插入的元素。
1 | var a = [1,2,3,4,5] |
1 | var a = [1,2,3,4,5] |
1 | var a = [1,2,3,4,5] |
参数取负值问题 如果第一个参数 为负值 则按绝对值从数组右侧开始向左侧定位,如果第2个参数为负值,则被视为0
1 |
|
slice
slice()方法与splice()方法功能很相近 但是它能够截取数组中指定区段的元素,并返回这个子数组,该方法包含两个参数,分别指定截取子数组的起始和结束位置的下标。
1 | arr.slice(start,end) |
reverse
reverse()方法能够颠倒数组元素的排列顺序 该方法不需要参数
1
2
3
4 var arr = [1,2,3,4,5]
arr.reverse();
console.log(a)//[5,4,3,2,1]
// 注意 该方法是在原数组基础上操作,并不是创建新的数组
sort
sort()方法能够根据一定条件对数组元素进行排序。如果调用sort()方法时没有传递参数。则按字母顺序对数组中的元素进行排序
1 | var a = ['a','e','d','b','c'] |
所谓的字母顺序,实际上是根据字母在字符编码表中的顺序进行排序的,每个字符在字符表中都有一个唯一的编号。
如果元素不是字符串 则sort 方法会试图把数组的元素都转换成字符串,以便进行比较
在排序时,sort 方法将根据元素值进行逐位比较,而不是根据字符串的个数进行排序,在排序时首先比较每个元素的第一个字符,在第一个字符相同的情况下,在比较第2个字符,以此类推。
1 |
|
- 在任何情况下,数组中undefined 的元素都被排列在数组末尾
- sort 方法是在原数组基础是那个个进行排序操作 不会创建新的数组
##toString
toString 将数组转换成一个字符串
##toLocaleString
toLocaleString()把数组转换成局部字符串
##join
join()将数组元素连接起来构建一个字符串