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);