JavaScript数组练习题
问题:
1.定义一个含有30个整型元素的数组,按顺序分别赋予从2开始的偶数;然后按顺序每五个数求出一个平均值,放在另一个数组中并输出。试编程
1 var arr = []; 2 for(var i=0;i<30;i++){ 3 arr.push((i+1)*2); 4 } 5 console.log(arr); 6 7 // 用来统计和 8 var sum = 0; 9 // 用来存储平均值 10 var sArr = []; 11 // 遍历 12 for(var i=0;i<arr.length;i++){ 13 // 累加,准备计算平均数 14 sum += arr[i]; 15 // 判断是否加了5个数字 16 if((i+1)%5 === 0){ 17 // 已经加了5个数字了,可以求平均值了 18 sArr.push(sum/5); 19 // 容器初始化,准备记录下5个数字的和 20 sum = 0; 21 } 22 } 23 console.log(sArr);
2.编写函数map(arr) 把数组中的每一位数字都增加30%,并返回一个新数组
1 function map(arr){ 2 for(var i=0;i<arr.length;i++){ 3 arr[i] *= 1.3; 4 } 5 return arr; 6 } 7 8 var a = [4,5,6,7,8]; 9 console.log(a); 10 var res = map(a); 11 console.log(res);
3.有一个从小到大排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
1 方法一: 2 var arr5 = [] 3 for (var i = 20; i < 50; i++) { 4 arr5.push(i) 5 } 6 console.log(arr5) 7 var arr6 = []; 8 var a = 30.5; 9 for (var j = 0; j < arr5.length; j++) { 10 if (arr5[j] > a) { 11 arr6 = arr5.splice(j, 0, a) 12 break; 13 14 } 15 if (arr5[arr5.length - 1] < a) { 16 arr5.push(a) 17 } 18 } 19 console.log(arr6) 20 console.log(arr5)
方法二:
1 function insert(arr,num){ 2 arr.push(num); 3 arr.sort(function(a,b){ 4 return a-b; 5 }) 6 return arr; 7 } 8 var a = [4,5,7,8]; 9 console.log(a); 10 var res = insert(a,166); 11 console.log(res);
4.通过循环按执行顺序,做一个5×5的二维数组,赋1到25的自然数,然后输出该数组的左下半三角。试编程。
1 var arr = [] 2 var res = [] 3 for (var i = 1; i <= 25; i++) { 4 res.push(i) 5 if (i % 5 == 0) { 6 arr.push(res) 7 res = [] 8 } 9 } 10 11 console.log(arr)
5.编写函数norepeat(arr) 将数组的重复元素去掉,并返回新的数组
1 方法一: 2 var arr10 = [1, 5, 8, 1, 5, 8, 4, 8, 5] 3 var newarr10 = []; 4 5 function Arr10(arr10) { 6 for (var i = 0; i < arr10.length; i++) { 7 if (newarr10.indexOf(arr10[i]) == -1) { 8 newarr10.push(arr10[i]) 9 } 10 } 11 return newarr10 12 } 13 console.log(Arr10(arr10)) 14 15 16 var arr11 = [1, 1, 1, 2, 3, 4, 1, 3, 6, 7, 3, 5]; 17 var newArr11 = []; //声明一个空数组 18 function norepeat(arr11) { 19 for (var i = 0; i < arr11.length; i++) { //遍历数组 20 if (newArr11.indexOf(arr11[i]) == -1) { //用indexOf判断,没有就加入arr[i]的值 21 newArr11.push(arr11[i]); 22 } 23 } 24 return newArr11; 25 } 26 console.log(norepeat(arr11)); 27 28 方法二: 29 // 思路: 30 // 健忘者,去超市买东西,每样商品只要一份,但是拿多了 31 // 收银员给了一个空的购物车,挑一下 32 // 空的购物车,随便拿一个放进去 33 // 每次,先检查新的购物车中存不存在,存在,跳过,不存在,放进去 34 // 新的购物车中就是去重之后的内容 35 36 // 功能:判断是否存在 37 function isExist(arr,num){ 38 for(var i=0;i<arr.length;i++){ 39 if(arr[i] === num){ 40 return true; 41 } 42 } 43 return false; 44 } 45 // var a = [2,4,6,7,9]; 46 // console.log(isExist(a,4)); 47 48 var arr = [1,2,3,4,5,4,3,2,1,1,1]; 49 console.log(arr); 50 var sArr = []; 51 // 遍历重复数据的数组,拿到每个数据,判断新数组中书否存在,不存在,放进去 52 for(var i=0;i<arr.length;i++){ 53 if(!isExist(sArr, arr[i])){ 54 sArr.push(arr[i]); 55 } 56 } 57 console.log(sArr);
持续更新中...

浙公网安备 33010602011771号