JavaScript-day04练习2

1. 将一个数组[1, 2, 3, 4, 5]转换成字符串1-2-3-4-5

2. 删除数组 arr 第一个元素,不要直接修改数组 arr,得到删除后的新数组。

3..!!!!!用于过滤一个数组内重复的元素(数组去重),返回去重之后的数组。

//例如:var arr1 = [2, 4, "a", "b", "c", 1, 2, 2, 5, "a", "b"];

//去重后: [2, 4, "a", "b", "c", 1, 5];  

4.实现将一个数组中的元素由从大到小排序进行排列(数组排序)。

//例如:var arr1 = [2, 44, 8, 23, 13, 5]  

//返回:[44, 23, 13, 8, 5, 2]

5. 实现将数组里面的元素顺序颠倒过来(数组反转),并返回反转之后的数组。

例如:var arr1 = [2, 44, 8, 23, 13, 5]  

//返回:[5, 13, 23, 8, 44, 2]

6. 用于合并两个数组,并且合并之后的数组中没有重复的元素。

例如:var arr1 = [2, 44, 8, 23, 13, 5]  

     var arr2 = [2, 64, 38, 73, 13, 5]

//合并之后:[2, 44, 8, 23, 13, 5,64, 38, 73]

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

例如:var arr1 = [2, 44, 8, 23, 13, 5]  

     var arr2 = [2, 64, 38, 73, 13, 5]

//得到:[44,8,23]

 8.二维数组[1,2,[3,4,5,6]],如何转换成一维数组`[1,2,3,4,5,6]`

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 1. 将一个数组[ 1, 2, 3, 4, 5] 转换成字符串1 - 2 - 3 - 4 - 5
        var arr = [1, 2, 3, 4, 5];
      
        console.log(arr.join('-'));



        // 2. 删除数组 arr 第一个元素, 不要直接修改数组 arr, 得到删除后的新数组。
        var arr = [1, 2, 3, 4];
        var arr2 = arr.slice(1);
        console.log(arr2);



        // 3.!!!!!用于过滤一个数组内重复的元素( 数组去重), 返回去重之后的数组。

        var arr1 = [1, 2, 3, 4, 4, 8, 5, 8, 9];
        var arr2 = [];
        for (var i = 0; i < arr1.length; i++) {
            if (!(arr2.includes(arr1[i]))) {
                // arr2.includes(arr1[i]) == false
                // arr2.indexOf(arr[i]) == -1
                arr2.push(arr[i]);
                

            }
        }
        console.log(arr2);


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

        console.log(arr);


        // 4. 实现将一个数组中的元素由从大到小排序进行排列( 数组排序)。
        var arr = [99, 5, 12, 6, 10, 100, 87, 34, 10, 2, 5, 27, 98, 31, 23];

        for (var j = 0; j < arr.length - 1; j++) {
            for (var i = 0; i < arr.length - j - 1; i++) {
                if (arr[i] < arr[i + 1]) {
                    // 比较 之后交换位置
                    var temp = arr[i];
                    arr[i] = arr[i + 1];
                    arr[i + 1] = temp;

                }
            }
        }
        console.log(arr);

        // sort()  数组排序
        sort(0, arr.length - 1);
         arr1.sort(function (a, b) {
            return b - a;
        });
        console.log(arr);


        // 5. 实现将数组里面的元素顺序颠倒过来( 数组反转), 并返回反转之后的数组。
        var arr = [1, 2, 3, 4];
        console.log(arr.reverse());




        // 6. 用于合并两个数组, 并且合并之后的数组中没有重复的元素。

        var arr = [1, 2, 43, 4, 45, 6, 7, 8, 9];
        var arr1 = [1, 2, 3, 4, 5, 6, 7, 8, 9];
        arr = arr.concat(arr1);
        var arr2 = [];
        for (var i = 0; i < arr.length; i++) {
            if (arr2.includes(arr[i]) == false) {
                arr2.push(arr[i]);
            }
        }
        console.log(arr2);



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

        var arr1 = [2, 44, 8, 23, 13, 5];
        var arr2 = [2, 64, 38, 73, 13, 5];
        var arr3 = [];
        for (var i = 0; i < arr1.length; i++) {
            if (arr2.includes(arr1[i]) == false) {
                arr3.push(arr1[i]);
            }
        }
        console.log(arr3);




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



        // 8. 二维数组[1, 2, [3, 4, 5, 6]], 如何转换成一维数组 `[1,2,3,4,5,6]`
        var arr1 = [
            [0, 1],
            [2, 3],
            [4, 5]
        ];
        for (var i = 0; i < arr1.length; i++) {
            if (Array.isArray(arr1[i])) {
                for (var j = 0; j < arr1[i].length; j++) {
                    arr1.splice(i, 0, arr1[i][j]);
                    i++;
                }
            }
        }
        for (var i = 0; i < arr1.length; i++) {
            if (Array.isArray(arr1[i])) {
                arr1.splice(i, 1);
            }
        }
        console.log(arr1);


        var arr = [1, 2, [3, 4, 5, 6]];
        var newArr = [];
        for (var i = 0; i < arr.length; i++) {
            if (Array.isArray(arr[i])) {
                for (var j = 0; j < arr[i].length; j++) {
                    newArr.push(arr[i][j]);
                }
            } else {
                newArr.push(arr[i]);
            }
        }
        // 9. 实现一个方法, 输入任意字符串, 返回一个对象, 对象的key为字符串中每个字符出现的次数。
    </script>
</body>

</html>


 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值