JavaScript 数据结构(数组)相关案例 练习

将1 - 100 所有能被5整除的数, 以数组形式打印

let i = 1;
let arr = [];
for (i = 1; i <= 100; i++) {
    if (i % 5 == 0) {
        // arr.push(i)//末尾添加
        // arr.unshift(i)//起始添加
        arr.splice(0, 0, i) //剪接
        arr.sort((a, b) => a - b);
        //arr = arr.concat(i); //拼接 一般情况下不使用拼接,会使运行速度变慢
        // arr[arr.length] = i;
    }
}
console.log(arr);

让用户依次输入三个数, 把这3个数放进数组, 并打印最大最小和平均值

一
let arr = [];
let sum = 0;
let n = 0;
for (let i = 1; i <= 3; i++) {
    console.log(`请输入第${i}个数`);
    let num = readline.question() - 0;
    arr.push(num);
    sum += num;
    n = sum / arr.length;
    arr.sort((a, b) => a - b); //升序
}
let min = arr[0] //升序的第一个就是最小值
let max = arr[arr.length
​
二
let arr = [];
let sum = 0;
let ave = 0;
console.log(`请输入第1个数`);
let num1 = readline.question();
console.log(`请输入第2个数`);
let num2 = readline.question();
console.log(`请输入第3个数`);
let num3 = readline.question();
arr.push(num1, num2, num3)
arr.sort((a, b) => a - b);
for (let i = 1; i <= 3; i++) {
    sum += i;
    ave = sum / 3;
}
console.log(sum, ave, arr[0], arr[arr.length - 1]);

创建一个数组, 输入数字添加进数组, 直到输入0为止, 删除所有奇数, 求所有偶数的和

let arr = [];
let flag = true;//如果变量值为true,一直死循环
let sum = 0;
while (flag) {//while循环一般会判断变量值
    console.log(`请输入一个数`);
    let num = readline.question();
    arr.push(num);
    if (arr[arr.length - 1] == 0) {//当数组的最后一个索引号的值为0,则表示输入为0退出
        flag = false;
        break;
    }
}
for (let i = 0; i <= arr.length - 1; i++) {//索引从0开始,最大索引号为长度-1
    if (arr[i] % 2 != 0) {
        arr.splice(i, 1);//删除以当前i元素开始的1个元素
        i--;//由于for循环的固定语法,但是索引都是从0开始,所以不能自增,为了避免所以会--,让i的值退回一次
    } else {
        sum += arr[i] - 0;//强制转换为数字型
    }
​
}
arr.pop();//由于输入0的时候是先进入了数组在退出了循环,所以数组最后一个元素还是为0,所以需要删除数组的最后一个元素
console.log(arr, sum);

请输入你要输入的数组长度, 一次输入数字 1、最大 2、最小 3、和 4、平均

let arr = [],
    max = 0,
    min = 0,
    ave = 0,
    sum = 0;
console.log(`请输入想要的数组长度`);
let length = readline.question() - 0;
for (let i = 1; i <= length; i++) {
    console.log(`请输入第${i}个数`);
    let num = readline.question() - 0;
    arr.push(num);
    arr.sort((a, b) => a - b); //升序
}
for (let item of arr) {
    sum += item - 0;
    ave = sum / arr.length;
}
​
let flag = true;
while (flag) {
    console.log(` 请选择一下操作:1、最大 ,2、最小 ,3、和, 4、平均, 5、退出`);
    let on = readline.question();
    switch (on) {
        case '1':
            console.log(`最大值是${arr[arr.length-1]}`);
            break;
        case '2':
            console.log(`最小值是${arr[0]}`);
            break;
        case '3':
            console.log(`和是${sum}`);
            break;
        case '4':
            console.log(`平均值是${ave}`);
            break;
        case '5':
            console.log(`欢迎使用`);
            flag = false;
            break;
    }
}

账号登录注册

let user = [
    ['zhangsan', '123'],
    ['lisi', '456']
]
let newUser = [];
let flag = true;
while (flag) {
    console.log('1. 登录 2. 注册:');
    let on = readline.question() - 0;
    switch (on) {
        case 1:
            console.log(`请输入用户名:`);
            let name = readline.question();
            console.log(`请输入密码:`);
            let psw = readline.question();
            let flag1 = false;
            // for (let i = 0; i <= user.length - 1; i++) {
            //     if (name == user[i][0] && psw == user[i][1]) {
            //         console.log(`登录成功`);
            //         flag1 = true;
            //         flag = false;
            //         break;
            //     }
            // }
            for (let item of user) {
                if (name == item[0] && psw == item[1]) {
                    console.log(`登录成功`);
                    flag1 = true;
                    flag = false;
                    break;
                }
            }
            if (!flag1) {
                console.log(`账号或密码错误`);
            }
            break;
        case 2:
            console.log(`请输入用户名:`);
            let name1 = readline.question();
            console.log(`请输入密码:`);
            let psw1 = readline.question();
            let flag2 = false;
            for (let j = 0; j <= user.length - 1; j++) {
                if (name1 == user[j][0]) {
                    console.log(`账号已存在`);
                    flag2 = true;
                    break;
                }
            }
            if (!flag2) {
                // newUser.push(name1, psw1);
                // user.push(newUser);
                user.push([name1, psw1]);
                console.log(`注册成功,下次可直接登录`);
                flag = false;
                console.log(user);
            }
            break;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值