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

 持续更新中...

posted @ 2020-05-06 22:04  D_Ming  阅读(1279)  评论(0)    收藏  举报