JavaScript day01-04相关训练题 数组

目录

1.定义一个整型数组,求出数组中奇数个数和偶数个数

2.比较两个数组内容是否完全一致,如果一致,打印true    不一致 打印false

3.根据答案算分数

4.利用数组求平均分

5.数组去重

1.arr.slice去重

2.indexOf去重

六、找到在第一个数组array1中出现,而在第二个数组array2中没有出现的数字,并组成新数组。

七、二维数组转一维数组 


1.定义一个整型数组,求出数组中奇数个数和偶数个数

var arr = [1,2,3,4,5,6,7,8,9,10];
var ou = 0; // 计数器
var ji = 0; // 计数器

// 把数组中 每一个元素下标都拿出来判断 是奇数还是偶数
for(var i = 0; i < arr.length; i ++){
    if(arr[i] % 2 ==0){
        ou ++;
    }else{
        ji ++;
    }
}

console.log("偶数个数为" + ou); // 5
console.log("奇数个数为" + ji); // 5

2.比较两个数组内容是否完全一致,如果一致,打印true    不一致 打印false

var arr1 = [1, 2, 3];
var arr2 = [1, 2, 3, 44];
var arr3 = [1, 2, 0];
var arr4 = [1, 2, 3];
var arrtof = 0; //计数器



if (arr1.length !== arr4.length) {
            console.log(false);
         //比较两个数组的长度,长度一致执行else,长度不一致直接输出false

        } else {
            for (var i = 0; i < arr1.length; i++) {
                if (arr1[i] !== arr4[i]) {
                    console.log(false);
                    break;
        //比较两个数组对应的元素是否一致,一致执行else,不一致直接输出false,并break结束循环

                } else {
                    arrtof++;
        //相对应元素一致就计数器自增一

                }
            }
        }

        if (arrtof == arr1.length) {
            console.log(true);
        //若计数器的数字与数组长度一致,则表示完全相同,则输出true

        }


3.根据答案算分数

根据正确答案【ADBCD】,每题2分共10分,求出每名学生最终得分。

        四名同学答案分别为:

        小张:【DCBAD】

        小美:【ADBCD】

        小丽:【ADBCA】

        小好:【ABCDD】

        每答对一题,得2分,输出四名同学的最终得分。

var arr = ['A', 'D', 'B', 'C', 'D'];
        // 标准答案
        var score = [0, 0, 0, 0];
        // 每人分数
        var daan = [
            ['D', 'C', 'B', 'A', 'D'],
            ['A', 'D', 'B', 'C', 'D'],
            ['A', 'D', 'B', 'C', 'A'],
            ['A', 'B', 'C', 'D', 'D']
        ];
        // 所有同学的答案
        for (var i = 0; i < daan.length; i++) {
            // 遍历每一位同学的答案的整体数组
            for (var j = 0; j < daan[i].length; j++) {
                // 遍历每一位同学的数组的每一个答案
                if (daan[i][j] === arr[j]) {
                    // 判断答案是否正确
                    score[i] + =  2;
                    // 正确则加2分
                }else{
                    score[i] + = 0;
            }
        }


        console.log(score); // [4,10,8,4]

4.利用数组求平均分

请用数组实现:已知歌唱选手的分数为,90,70,80,60,95,85,70,现要求出该选手的最后成绩,计算方式为去掉最高分和最低分再求平均值;

var arr = [90, 70, 80, 60, 95, 85, 70];

        // 冒泡
        for (var i = 0; i < arr.length - 1; i++) {
            for (var j = 0; j < arr.length - i - 1; j++) {
                if (arr[j] > arr[j + 1]) {
                    var temp;
                    temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
        console.log(arr);
        //[60, 70, 70, 80, 85, 90, 95]

        // slice  [)
        var newarr = arr.slice(1,arr.length-1);
        console.log(newarr);
        //[70, 70, 80, 85, 90]

        var sum = 0;
        for(var i =0;i<newarr.length;i++){
            sum += newarr[i];
        }

        console.log(sum / newarr.length);
        //79

5.数组去重

arr = [1, 2, 3, 3, 3, 4, 5, 2, 1, 6, 7, 7, 8, 5, 6, 9];

1.arr.slice去重

var arr = [1, 2, 3, 3, 3, 4, 5, 2, 1, 6, 7, 7, 8, 5, 6, 9];

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); // 删除
                    j--; // 回溯
                }
            }
        }

2.indexOf去重

var arr = [1, 2, 3, 3, 3, 4, 5, 2, 1, 6, 7, 7, 8, 5, 6, 9];

var newArr = [];
        for (var i = 0; i < arr.length; i++) {
            if(newArr.indexOf(arr[i]) == -1){
                newArr.push(arr[i]);
            }
        }
        console.log(newArr);

六、找到在第一个数组array1中出现,而在第二个数组array2中没有出现的数字,并组成新数组。

arr1 = [2, 44, 8, 23, 13, 5];
arr2 = [2, 64, 38, 73, 13, 5];

var arr1 = [2, 44, 8, 23, 13, 5];
        var arr2 = [2, 64, 38, 73, 13, 5];

        for (var i = 0; i < arr1.length; i++) {
            for(var j=0;j<arr2.length;j++){
                if(arr1[i] === arr2[j]){
                    arr1.splice(i,1);
                }
            }
        }

        console.log(arr1);

七、二维数组转一维数组 

arr = [1,2[3,4,5,6]]

// 数组
        var arr = [1, 2, [3, 4, 5, 6]];

        var newArr = [];
        // Array.isArray() 判断是否为一个数组
        for (var i = 0; i < arr.length; i++) {
            // 通过 Array.isArray() 判断当前遍历项是否为一个数组
            // 如果是一个数组的话,则需要继续遍历
            if (Array.isArray(arr[i])) {
                for (var j = 0; j < arr[i].length; j++) {
                    newArr.push(arr[i][j]);
                }
            } else {
                // 如果不是一个数组,则直接放进新数组中
                newArr.push(arr[i]);
            }
        }

        console.log(newArr);

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值