JavaScript关于数组的一些基础问题
题目
1、定义一个含有30个整型元素的数组,按顺序分别赋予从2开始的偶数;然后按顺序每五个数求出一个平均值,放在另一个数组中并输出。试编程
var arr = new Array(30); var n = 2; var newArr = []; var sum = 0; for(var i=0;i<arr.length;i++) { arr[i] = n; n += 2; if( (i+1) % 5 != 0){ sum += arr[i]; }else{ sum += arr[i]; newArr.push(sum/5); sum = 0; } } console.log(arr); console.log(newArr);
2、编写函数map(arr) 把数组中的每一位数字都增加30%,并返回一个新数组
function map(arr){ var newArr = []; for(var i=0;i<arr.length;i++) { arr[i] += arr[i]*0.3; } return arr; } var newArr = [100,200,300,400,500]; console.log(map(newArr));
3、有一个从小到大排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
function fn(num,arr){ for(var i=0;i<arr.length;i++) { if(arr[i] >= num){ arr.splice(i,0,num); break; } } //比最后一个大时,直接插到最后面 if(num >= arr[arr.length-1]){ arr.push(num); } return arr; } var arr = [1,2,3,5,6,7]; console.log(fn(4,arr));
4、通过循环按执行顺序,做一个5×5的二维数组,赋1到25的自然数,然后输出该数组的左下半三角。试编程。
var n = 1; var arr1 = []; for(var i=0;i<5;i++) { var arr2 = []; for(var j=0;j<5;j++) { arr2.push(n); n++; } arr1.push(arr2); } // document.write(arr1); for(var i=0;i<5;i++) { for(var j=0;j<=i;j++) { document.write(arr1[i][j]+" ") } document.write("<br>"); }
5、编写函数norepeat(arr) 将数组的重复元素去掉,并返回新的数组
function norepeat(arr){ for(var i=0;i<arr.length;i++) { for(var j=i+1;j<arr.length;j++) { if(arr[i] == arr[j]){ arr.splice(j,1); } } } return arr; } var arr = [1,2,3,4,4,8,52,1,4,2,1]; console.log(norepeat(arr));