ECMAScript3中的数组方法
代码部分为在Chrome控制台的运行结果。
- join()
将数组中所有的元素转化为字符串拼接在一起,返回字符串。Array.join()是String.split()的逆向操作。
var a = [1,2,3]
a.join("+")
//"1+2+3"
var b = "1+2+3"
b.split("+")
//["1", "2", "3"]
- reverse()
返回逆序的数组。
a.reverse()
//[3, 2, 1]
- sort()
返回排序后的数组。若不带参数,数组元素以字母表顺序排序。
! !sort()可以传递一个比较参数。若第一个参数在前,返回一个小于0的数值。若第一个参数在后,返回一个大于0的数值。
var a = [33,4,1111,222]
a.sort()
//[1111, 222, 33, 4]
a.sort(function(a,b){return a-b})
//[4, 33, 222, 1111]
a.sort(function(a,b){return b-a})
//[1111, 222, 33, 4]
- concat()
创建并返回一个新数组。
var a = [1,2,3]
a.concat(4,5)
//[1, 2, 3, 4, 5]
a.concat([4,5])
//[1, 2, 3, 4, 5]
a.concat([4,[5]])
//[1, 2, 3, 4, Array[1]]
- slice()
返回指定数组的一个片段或者数组。两个参数为开始和结束的位置,第二个参数可省。可为负数,即倒数。
var a = [1,2,3,4,5]
a.slice(1)
//[2, 3, 4, 5]
a.slice(1,-2)
//[2, 3]
- splice()
第一个参数指定插入/删除的起始位置,第二个指定从数组中删除的元素的个数。其后任意个数的参数指定需要插入到数组中的元素。不同于slice()、concat(),splice()会修改调用的数组!!
var a = [1,2,3,4,5]
var b = a.splice(2)
a
//[1, 2]
b
//[3, 4, 5]
pop() push()
允许将数组当作栈来使用。注意,两个方法都修改并替换原始数组而非生成一个修改版的新数组。unshift() shift()
类似于pop() push(),但是这是操作于头部。且unshift()若有多个参数,是一次性插入的,而非一次一个地插入。
unshift()返回数组新的长度,shift() 删除数组的第一个元素并将其返回。
var a = []
a.unshift(1)
//1
a.unshift(22)
//2
a.shift()
//22
a.unshift(3,[4,5])
//3
a
//[3, Array[2], 1]
- toString()
将每个元素转化为字符串
ECMAScript5中的数组方法
- forEach()
从头至尾遍历数组。使用三个参数:数组元素、元素的索引、数组本身。forEach()没有像for循环中使用的相应的break语句。若提前终止,必须把forEach()放在一个try中
var data = [1,2,3,4,5]
data.forEach(function(v,i,a){a[i] = v + 1;})
data
//[2, 3, 4, 5, 6]
- map()
将调用的数组的每个元素传递给指定的函数,并返回一个新数组,包含该函数的返回值。
data2 = data.map(function(v){return v*v })
data
//[2, 3, 4, 5, 6]
data2
//[4, 9, 16, 25, 36]
- filter()
返回的数组元素是调用的数组的一个子集,传递的函数用来逻辑判定。