JavaScript Array 技巧

filter():返回该函数会返回true的项组成的数组

1 var num = [1,2,3,2,1];
2 var result = num.filter(function(item,index,array){
3     return (item > 2);
4 })
5 console.log(result);//[3]

map():返回每次调用结果组成的数组

1 var num = [1,2,3,2,1];
2 var result = num.map(function(item,index,array){
3     return (item > 2);
4 })
5 console.log(result);// [false,false,true,false,false]

reduce():迭代从数组的第一项到最后一项


 1 //求和
 2 var val = [1, 2, 3]
 3 var sum = val.reduce(function(pre, cur, index, array) {
 4     return pre + cur;
 5 })
 6 console.log(sum); //6
 7 
 8 
 9 //数组扁平化
10 var arr = [
11     [0, 1],
12     [2, 3],
13     [4, 5]
14 ].reduce(function(pre, cur) {
15     return a.concat(b);
16 });
17 // arr 为 [0, 1, 2, 3, 4, 5]

 

 sort:对数组的元素进行排序。

1 var mymarry = [6, 7, 9, 1, -1];
2 var sortAsc = function(x, y) {
3     return x - y;
4 };
5 var sortDesc = function(x, y) {
6     return y - x;
7 };
8 mymarry.sort(sortAsc); //正序
9 mymarry.sort(sortDesc); //倒序

.indexOf():从数组开头开始向后查,返回查找的项在数组中的位置,没有找到返回-1。

1  //数组去重 start
2 function unique(arr) {
3     var result = [];
4     for (var i = 0; i < arr.length; i++) {
5     if (result.indexOf(arr[i]) == -1) result.push(arr[i]);
6     }
7     return result;
8 }

 

 数组中对应的每一项相加

 1 var list = [{
 2     number: [1, 2, 3, 4]
 3 }, {
 4     number: [1, 2, 3, 4, 5]
 5 }, {
 6     number: [1, 2, 3, 4]
 7 }, {
 8     number: [1, 2, 3, 4, 5]
 9 }];
10 var arr = [];
11 for (var i in list) {
12     if (arr.length) {
13         for (var x in list[i].number) {
14             if (!arr[x]) {
15                 arr[x] = 0;
16             }
17             arr[x] = arr[x] + list[i].number[x];
18         }
19     } else {
20         arr = list[i].number;
21     }
22 }
23 console.log(arr);

 

 

 

 

参考:https://segmentfault.com/a/1190000003977377

给出一篇对Array操作很全的文章:http://www.cnblogs.com/onepixel/p/5123115.html

posted @ 2015-12-25 11:59  gaozejie  阅读(428)  评论(0编辑  收藏  举报