Javascript操作数组的几个函数整理

1、concat()

array.concat(value1, value2, ..., valueN);  //其中value1、value2等可以数组也可以是字符串、数字等其他类型的数据

功能:将两个或两个以上个数组的元素抽取出来组合成一个新的数组。

1 strArr = ['a', 'b', 'c']
2 numArr = [1,2,3,4,5]
3 str = 'String'
4 strArr.concat(numArr, str); => ["a", "b", "c", 1, 2, 3, 4, 5, "String"]

2、every()

array.every(callback[element, index, array]),

功能:将数组中的每一个元素执行一次callback这个回调函数,只有当执行callback时每次都返回true,every函数才返回true,否则返回false

1 function isBig(element, index, array) {
2     return (element > 10);
3 };  //当参数element大于10返回true
4 [11,22,33,44,55].every(isBig)  => true   //因为每个元素都大于10,所以每次执行isBig函数是都返回true。只要其中有一个元素小于或等于10,则返回false

3、filter()

array.filter(callback[element, index, array]);

功能: 过滤。将数组中的每一个元素各执行一次callback函数,若返回true则该元素留下,否则该元素将被过滤掉。

1 function isBig(element, index, array) {
2     return (element > 10);
3 };  //当参数element大于10返回true
4 
5 [11,44,2,7,55,2,19].filter(isBig)  => [11, 44, 55, 19]   //比10小的元素都被过滤掉了

4、forEach()

array.forEach(callback[element, index, array]);

功能: 与ruby语言中的each方法类似,遍历数组中的每个元组,可对每个元素进行各种操作。

1 var i = 0;
2 [1, 2, 3, 4, 5].forEach(function(element) { i += element; });  =>  i = 15    

5、indexOf()

array.indexOf(searchElement[, fromIndex]);

功能: 查找某一元素在数组中的位置,返回的是第一个元素的下标号。

1 arr = [1,2,3,4,3,5,3];
2 
3 arr.indexOf(3);  =>  2
4 arr.indexOf(3, 3); => 4  //第二个参数是指明从第4个元素开始查找,结果略过第三个元素3,找到第5个元素3,所以返回4

拓展:lastIndexOf()函数与indexOf()函数相似,不同的是它从元素的后面开始查找。

6、join()

array.join(separator);、

功能: 将数组中的所有元素转换为字符串类型并链接起来。

1 arr = ['One', 'Two', 'Three'];
2 
3 arr.join(); => "One,Two,Three"   //默认链接时元素之间用逗号隔开
4 arr.join('*'); =>  "One*Two*Three"

7、map()

array.map(callback[, thisObject]);

功能: 遍历数组中的每一个元素,每次都返回数据作为新数组的最后一个元素,最终返回结果是一个数组。

1 [1,2,3,4,5].map(function(e){ return e + 10 });  => [11, 12, 13, 14, 15]

8、pop()

array.pop()

功能: 将数组的最后一个元素删除并返回这个被删除的元素。

1 arr = [1,2,3,4,5];
2 arr.pop(); => 5
3 arr => [1,2,3,4]

9、push()

array.push(element1, element2, ... , elementN)

功能: 将参数插入至数组最后,返回数组的长度。

1 arr = [1,2,3,4,5];
2 arr.push(33, 44, 55);  => 8
3 arr  => [1, 2, 3, 4, 5, 33, 44, 55]

10、reduce()

array.reduce(callback[, initialValue])

用法: callback函数里有四个参数:

  previousValue: 先前值,默认为数组的第一个元素的值,也可自定义为其他值,如下面例子中的10

  currentValue: 当前值,默认从数组的第二个元素开始,如果自定义了先前值,则从第一个元素开始

  index: 数组元素的序号

  array: 当前数组

功能: 对数组中的元素(从左到右)两两执行callback操作,返回最后一次操作的结果。

例子: 

1 [0,1,2,3,4].reduce(function(previousValue, currentValue, index, array){
2     return previousValue + currentValue;
3 }); => 10
1 [0,1,2,3,4].reduce(function(previousValue, currentValue, index, array){
2     return previousValue + currentValue;
3 }, 10);  => 20   //这里自定义了先前值
 
11、reduceRight()
与reduce()相似,区别在于执行的顺序相反
12、reverse()
功能: 将原来的数组倒序
1 [1,2,3,4,5].reverse();  =>  [5,4,3,2,1]
13、shift()
功能: 删除数组中的第一个元素并将该元素返回
1 arr = [1,2,3,4,5];
2 arr.shift();  => 1;
3 arr;  =>  [2,3,4,5]
14、slice()
array.slice(start,end)
用法:
  1. start为必需参数,所要选定元素的开头元素的下表
  2. end为可选参数,指选定的内容到该元素为止(所选取内容不包括下标为该参数的元素)
  3. 若参数为负数,则从尾部开始算起(start=-2,说明从数组倒数第二个元素开始选取内容,end也相同) 
功能:从已有的数组中返回选定的元素
 1 arr = [1,2,3,4,5];
 2 arr.slice(0);
 3 => [1, 2, 3, 4, 5]
 4 arr.slice(0, 1);
 5 => [1]
 6 arr.slice(-2, 5);
 7 => [4, 5]
 8 arr.slice(2,3);
 9 => [3]
10 arr.slice(0, -2);
11 => [1, 2, 3] 
15、some()
array.some(callback[, thisObject]);
功能:与every()相似,遍历数组中的每一个元素
用法:只要存在元素使得callback函数返回true,则some()返回true
1 function isBigger(element) {
2     return (element > 5);
3 };
4 arr1 = [1,2,3,4,5];
5 arr2 = [4,5,6];
6 arr1.some(isBigger);
7 => false
8 arr2.some(isBigger);
9 => true 
16、unShift()
 array.unshift( element1, ..., elementN );
功能:将新对象插入到数组的最前,作为新元素,返回新数组的长度
1 arr = [1,2,3];
2 => [1, 2, 3]
3 arr.unshift(5,6,[7,8,9]);
4 => 6
5 arr;
6 => [5, 6, Array[3], 1, 2, 3]
17、sort()
array.sort( compareFunction );
功能:对数组按compareFuction这个函数的排序方法进行排序,返回排序后的新数组
1 function mySort(a,b){ //返回正数则a和b交换位置,返回0或负数则不交换
2     return b - a;
3 }
4 => undefined
5 arr = [1,4,2]
6 => [1, 4, 2]
7 arr.sort(mySort)
8 => [4, 2, 1]
18、splice()
array.splice(index,howmany,element1,.....,elementX)
功能:插入、删除或替换数组的元素,如果从数组中删除了元素,则返回的是含有被删除的元素的数组。
参数:
       index:必需。规定从何处添加/删除元素。该参数是开始插入和(或)删除的数组元素的下标,必须是数字。
       howmany必需。规定应该删除多少元素。必须是数字,但可以是 "0"。如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。
       element1可选。规定要添加到数组的新元素。从 index 所指的下标处开始插入。
       elementX可选。可向数组添加若干元素。
说明:splice() 方法可删除从 index 处开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素。
19、toString()
array.toString()
功能:把数组转换为字符串,并返回结果
说明:当数组用于字符串环境时,JavaScript 会调用这一方法将数组自动转换成字符串。但是在某些情况下,需要显式地调用该方法
1 var arr = new Array(3);
2 arr[0] = "George";
3 arr[1] = "John";
4 arr[2] = "Thomas";
5 arr;
6 => ["George", "John", "Thomas"]
7 arr.toString();
8 => "George,John,Thomas"

 

posted @ 2013-05-02 21:46  Jing5022  阅读(281)  评论(0编辑  收藏  举报