【JS数组 习题练习】

知识点回顾:js数组

1、从以下学员名单中随机选出3个学员:

 ['隔壁小王', '同桌小李', '儿时小吴', '初恋小周', '红颜小赵']。注意:不要有重复的学员。

        var arr = ['隔壁小王','儿时小吴' ,'初恋小周', '红颜小赵']  
        var newArr = [] //用来装选出来的人
        for(var i = 1 ; i <= 3 ; i++){ //总共循环三次,每循环一次就随机选一个学员出来
            var rad2 = parseInt(Math.random()*arr.length)  
            console.log(arr[rad2]);
            //把随机选出来的学员装进newArr数组里面,并且从arr数组里面删掉这个学员
            newArr.push(arr[rad2]) 
            arr.splice(rad2,1)
        }
        console.log(newArr);//控制台打印出随机选出来的学员

2、猜数字游戏,有一个0-100随机数 玩家有5次输入的机会猜,每次猜一次,都要将结果告诉玩家是小了,还是大了。如果在5次机会内猜中,输出“聪明”,程序结束。如果5次机会用完 程序直接结束。

        var rad = parseInt(Math.random()*101) //声明变量rad来装0-100的随机数
        for(var i = 1 ; i <= 5 ; i++){
            var num = Number(prompt('请猜一个数'));
            if(num === rad){
                console.log('聪明!');
                break;
            }else if(num > rad){
                console.log('大了!');
            }else{
                console.log('小了!');
            }
        }
        console.log('程序结束!');

3、有一个4个长度的数组,每个位置装有0-9之间的随机数字,有10次输入的机会来猜每个位置的上的数是什么,每次猜完4个数字以后都要给出提示,正确几个 错误几个, 只有位置和数字完全正确才算正确,其他情况全视为错误。

        var arr = [] //用来装随机数的数组
        for (var i = 1; i <= 4; i++) {
            var rad = parseInt(Math.random() * 10)
            arr.push(rad);
        }
        console.log(arr);
        //执行10次
        for (var j = 1; j <= 10; j++) {
            //用户要开始输入四个数
            //把用户输入的四个数装进新数组里面去
            var newArr = [] //装用户输入的四个数
            for (var i = 1; i <= 4; i++) {
                var num = Number(prompt('输入一个数'))
                newArr.push(num);
            }
            console.log(newArr);
            //两个数组 相同下标 的值对比
            //比四次
            var correct = 0 //装正确的个数
            for (var i = 0; i < 4; i++) {
                if (arr[i] === newArr[i]) {
                    correct++;
                }
            }
            //如果全正确,结束
            if (correct === 4) {
                console.log('全部正确!');
                break;
            } else {
                console.log('正确:' + correct + ' 错误:' + (4 - correct));
            }
        }

4、数据去重,使数组的每一项都不一样。

        var arr = [1, 2, 2, 2, 3, 3, 4, 5, 2, 3, 4, 4, 2, 23, 4, 5, 3, 54, 3, 3, 4];
        //控制第一个比较数
        for (var i = 0; i < arr.length - 1; i++) {
            //控制第二个比较数
            for (var j = i + 1; j < arr.length; j++) {
                if (arr[i] === arr[j]) {
                    arr.splice(j, 1);
                    j--;
                }
            }
        }
        console.log(arr);

5、将一个正整数分解质因数。例如:输入90,分别打印出90的质因数 2 3 3 5 。输入60分别打印出 2 2 3 5 。  60=2*2*3*5

        // 输入60分别打印出 2 2 3 5 。  60=2*2*3*5
        var num = Number(prompt('请输入一个数')) 
        var arr = []  //装质因数的
        var num2 = num
        for(var i=2;i<=num;i++){
            if(num%i === 0){
                console.log('i',i);
                arr.push(i);
                num = num/i;
                i--;
            }
        }
        var str = arr.join('*')
        console.log(num2 + '=' + str);

6、求数组中的最大值。

        var arr = [-100,-200,-200,500,0];
        var maxValue = arr[0];
        for(var i = 1 ; i < arr.length ; i++){
            if(arr[i] > maxValue){
                maxValue = arr[i];
            }
        }
        console.log('最大值=',maxValue);

7、数组为:[1,3,5,7,24,32,25,48]
1).求数组奇数的个数和偶数的个数。
 2).求出上面数组的平均值。

        var arr = [1,3,5,7,24,32,25,48]
        var sum = 0; //装偶数的个数
        var sum2 = 0;//总和
        for(var i=0;i<arr.length;i++){
            sum2+=arr[i];
            if(arr[i]%2 === 0){
                sum++;
            }
        }
        console.log('偶数:' + sum );
        console.log('奇数:' + (arr.length-sum) );
        console.log('平均值:' + (sum2/arr.length) );

8、挑出其中所有是大一的女生的名字。

        var arr = [
            ['小A','女',21,'大一'],  ['小B','男',23,'大三'],
            ['小C','男',24,'大四'],  ['小D','女',21,'大一'],
            ['小E','女',22,'大四'],  ['小F','男',21,'大一'],
            ['小G','女',22,'大二'],  ['小H','女',20,'大三'],
            ['小I','女',20,'大一'],  ['小J','男',20,'大三']
        ]
        for(var i=0;i<arr.length;i++){
            if((arr[i][3] === '大一') && (arr[i][1] === '女')){
                console.log(arr[i][0]);
            }
        }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胡萝卜爱吃小白兔!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值