循序渐进学编程.Javascript数组练习题

 //输出二维数组
     var arr = [
         [1, 2, 34],
         [345, 1, 1],
         [44, 4, 7]
     ];

     for (var i = 0; i < arr.length; i++) {
         for (var j = 0; j < arr[i].length; j++) {
             console.log(arr[i][j]);
         }
     }
 	// 1.提示用户输入数组的长度,以及数组每一项的值,然后输出该数组

     var length = +prompt("请输入数组的长度:");
     if(isNaN(length))
     {
 		console.log("您的输入有误!");
 	 }
 	 else{
     var arr = new Array(length);
     for(var i = 0; i < length;i++)
     {
         arr[i] = prompt(`请输入数组第${i+1}的内容`);
     }
     for(var i = 0;i < length;i++)
     {
         console.log(arr[i]);
     }
 	}

        
        //2.初始化一个数字数组,然后求该数组所有项之和

        var numarr = [1, 3, 6, 10, 19];
        var sum = 0;
        for(var i = 0; i < numarr.length;i++)
        {
            sum += numarr[i];
        }
        console.log(sum);
        //3.初始化一个数字数组,然后输出数组中的所有奇数

        var numarr = [1, 8, 9, 19, 31];
        for(var i = 0; i < numarr.length; i++)
        {
            if(isOdd(numarr[i]))
            console.log(numarr[i]);
        }

        //4.初始化一个数字数组,然后输出数组中所有的素数
        var numarr = [1, 3, 5, 9, 10, 19];
        for(var i = 0; i < numarr.length;i++)
        {
            if(isPrime(numarr[i]))
            console.log(numarr[i]);
        }
       // 5.斐波那契数列是这样的一种数列:1 1 2 3 5 ...
       //让用户输入斐波那契数列的长度,在控制台中打印该长度的斐波那契数列

        var n = prompt();
        var arr = new Array(n);
        arr[0] = arr[1] = 1; 
        for(var i = 2; i < n;i++)
        {
            arr[i] = arr[i - 1] + arr[i - 2];
        }

        for(var i = 0;i  < n;i++)
        {
            console.log(arr[i]);
        }


        //6.定义一个用户数组,数组的每一项都是一个用户对象,用户对象中包含账号和密码
        //随意初始化一些对象放入数组中,然后提示用户输入账号和密码,判断是否登录成功
        var arr = [
            user1 = {
                username: "sunny",
                password: 1111
            },
            user2 = {
                usernam: "jack",
                password: 2222
            },
            user3 = {
                username: "tom",
                password: 3333
            }
        ];
        var username = prompt("请输入账号");
        var password = prompt("请输入密码");
        for(var i = 0;i < arr.length;i++)
        {
            if(username == arr[i].username && password == arr[i].password)
            {
                console.log("登录成功!");
                break;
            }
            else
            {
                console.log("用户名或密码错误!");
                break;
            }
        }
           
        //7.初始化一个5*5的二维数组,数组每一项是一个数字,计算对角线之和

        var arr = [
            [1, 2, 3, 4, 5],
            [1, 2, 3, 4, 5],
            [1, 2, 3, 4, 5],
            [1, 2, 3, 4, 5],
            [1, 2, 3, 4, 5]
        ]
        var sum = 0;
        for(var i = 0;i < 5;i++)
            sum += arr[i][i];
        console.log(sum);

        //8.初始化一个数字数组(数据随意),对该数组进行升序排序,然后输出结果
        //思路提示:数组的排序有多种算法可以完成,比如:冒泡排序
        var numarr = [11, 2, 13, 49, 9];
        var temp = 0;
        for(var i = 0;i < numarr.length;i++)
            for(var j = 0;j < numarr.length;j++)
            if(numarr[j] > numarr[j+1])
            {
                temp = numarr[j];
                numarr[j] = numarr[j+1];
                numarr[j+1] = temp;
            }

        console.log(numarr);
        //9.有一个数组,存放了一些数字,找出出现频率最高的数字(面试考过)
        
        var record = {};//得到记录对象
        var temp = {
            name:undefined,
            frequency:0
        };//临时对象
        var numarr = [1, 1, 1, 3, 2, 2, 1, 3, 5, 7, 23];
        for(var index in numarr)
        {
            if(record[numarr[index]])
            {
                record[numarr[index]]++;
            }
            else{
                record[numarr[index]] = 1;
            }
        }
        for(var index in numarr){
            if(record[numarr[index]] > temp.frequency)
            {
                temp.frequency = record[numarr[index]];
                temp.name = numarr[index];
            }
        }
         console.log(temp);
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值