js数组的操作
js中数组的使用非常普遍,以下是一些常用的方法和属性,数组以arr=[1,2,3,4]举例。
1.length属性
获取数组的长度,arr.length返回4。
2.indexOf()和lastIndexOf()方法
数组是通过indexOf()来搜索一个指定的元素的位置,例如arr.indexOf(1)返回0,如果数组中不存在的元素则返回-1。
3.slice()方法
截取数组的部分元素,arr.slice(0,2)截取从索引0开始到索引2结束,arr.slice(2)截取从索引2开始到结束,arr.slice()复制一个数组。
4.push()和pop()方法
末尾添加/删除元素,arr.push(5),数组在末尾添加一个元素,arr.pop(),删除数组末尾一个元素。
5.unshift()和shift()方法
头部添加/删除元素,arr.unshift(5),数组在头部添加一个元素,arr.shift(),删除数组头部一个元素。
6.sort()方法
对当前数组进行排序。
var a = [33,4,1111,222]; a.sort() // 字母表顺序 [1111,222,33,4] a.sort(function(a,b){ // 数值大小相反的顺序 return a-b; }) a.sort(function(){a,b}{return b-a}) // 数值大小相反的顺序
7.reverse()方法
把整个Array的元素给掉个个。
8.splice()方法
array.splice(index,howmany,item1,item2,........,itenX)。
参数 | 描述 |
---|---|
index | 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。 |
howmany | 必需。要删除的项目数量。如果设置为 0,则不会删除项目。 |
item1, ..., itemX | 可选。向数组添加的新项目。 |
9.join()方法
把当前Array的每个元素都用指定的字符串连接起来,然后返回字符串。
10.concat()方法
把当前的Array和另一个Array连接起来,并返回一个新的Array。
添加:
ECMAScript5 定义了9个新的数组方法来遍历、映射、过滤、检测、简化和搜索数组
11.forEach()
forEach()方法从头至尾遍历数组,为每个元素调用指定的函数。使用forEach()回调函数三个参数分别为:数组元素、元素的索引、数组本身
var data = [1,2,3,4,5]; var sum = 0; data.forEach(function(value){ sum += value; })
sum => 15
data.forEach(function(value,i,a){
a[i] = v+1
})
data => [2,3,4,5,6]
12.map()
map()方法将调用的数组每个元素传递给指定函数,并返回一个数组,它包含该函数的返回值
a = [1,2,3] b = a.map(function(x){ return x*x }) b => [1,4,9]
注:map()返回的新数组,它不修改调用的数组
13.filter()
fliter()方法返回的数组元素是调用的数组的一个子集,传递的函数是用逻辑判断的:该函数返回true或false。如果返回值为true或者能转化为true的值,那么传递给该判定函数的元素就是这个子集的元素,它将被添加到一个作为返回值的数组中
a = [5,4,3,2,1] smallvalus = a.filter(function(x){return x < 3}) //[2.1] everyothers = a.filter(function(x){return x%2 ==0}) //[5,3,1]
14.every()和some()
15.reduce() reduceRight()
16.其实第二个选项indexOf()和lastIndexOf()是ECMAScript 5的方法
具体细节向上翻。
17.总结
数组在实际工作当中使用非常广泛,做此笔记以备查询。