js数组练习

  1 //查找数组对象中 age 大于 18 对象
  2 function filterAdult(arr) {
  3     return arr.filter(function(item, index, array) {
  4         return (item.age > 18);
  5     });
  6 }
  7 filterAdult([
  8     {age: 19, name:'Jack'},
  9     {age: 5, name:'Apple'},
 10     {age: 12, name:'Lynn'},
 11     {age: 25, name:'David'}
 12 ]);
 13 
 14 
 15 //判断数组中是否所有的数字都大于 0 
 16 function isAllNumPosive(arr) {
 17     return arr.every(function(item, index, array) {
 18         if (typeof item === "number") {
 19             return (item > 0);
 20         } else {
 21             return true;
 22         }
 23     });
 24 }
 25 isAllNumPosive([1, 2, 3, 4]);  // 输出 true
 26 isAllNumPosive([1, 2, 3, 4, -1]);  // 输出 false
 27 isAllNumPosive([1, 2, 3, 4, 'a', {a:3}]);  // 输出 true
 28 
 29 
 30 
 31 //改变传入的数组,将数组中第 n(从 0 开始算 ) 个元素放到数组的开头 
 32 function putFirst(arr, index) {
 33     var item = arr.splice(index, 1);
 34     arr.unshift(item[0]);
 35     return arr;
 36 }
 37 var arr = [1, 2, 3, 4];
 38 putFirst(arr, 2);
 39 
 40 //将数组中数字内容求和
 41 function sum(arr) {
 42     var sum = 0;
 43     for (i in arr) {
 44         if (typeof arr[i] === 'number') {
 45             sum += arr[i];
 46         }
 47     }
 48     return sum;
 49 }
 50 sum([1, 2, 3, 4]);  // 输出 10 
 51 sum(['a', 1, 2, {a:3}, 3, 4, 1.2]);  // 输出 11.2
 52 
 53 
 54 //将数组元素按 age 字段的值,从小到大排序 
 55 function sortAge(arr) {
 56     return arr.sort(function(v1, v2) {
 57         if (v1.age < v2.age) {
 58             return -1;
 59         } else {
 60             return 1;
 61         }
 62     });
 63 }
 64 sortAge([
 65     {age: 19, name:'Jack'},
 66     {age: 5, name:'Apple'},
 67     {age: 12, name:'Lynn'},
 68     {age: 25, name:'David'}
 69 ]);
 70 
 71 
 72 //将数组元素去重,其中数组元素均为基本类性 
 73 function uniq(arr) {
 74     var newArr = [];
 75     var isUniq = true;
 76     for (i in arr) {
 77         for (j in newArr) {
 78             if (arr[i] === newArr[j]) {
 79                 isUniq = false;
 80             }
 81         }
 82         if (isUniq) {
 83             newArr.push(arr[i]);
 84         } else {
 85             isUniq = true;
 86         }
 87     }
 88     return newArr;
 89 }
 90 uniq([1,2,2,3,4,4,4,4]); // 输出 [1,2,3,4]
 91 uniq([1,2,'M','e','r', 'r', 'y']); // 输出 [1,2,'M','e','r','y']
 92 
 93 
 94 //将数组内容乱序 
 95 function random(arr) {
 96     return arr.sort(function() {
 97         return (Math.random()>0.5?-1:1);
 98     })
 99 }
100 random([1,2,3,4]);
101 
102 
103 //未解决!!!!
104 // 将 arguments 对象转换成数组 
105 function toArray(obj) {
106     var array = [];
107     for (i in obj) {
108         array.push(obj[i]);
109     }
110     return array;
111 }
112 (function(){
113     var arr = toArray(arguments);
114     Array.isArray(arr); 
115 })(1, 2);

 

posted @ 2016-03-17 15:11  前端菜鸟——一只小熊  阅读(3172)  评论(0编辑  收藏  举报