zoukankan      html  css  js  c++  java
  • 数组的一些问题

    一、给定一个多维数组arr,实现一个方法获取数组的最大深度(维度)

    例1:arr = [1, 2, [3, 4, [5]], 8],则返回3

    例2:arr = [1, 2, [5], 8],则返回2

       var  a = 1;
        var arr = [1, 2, [3, 4, [5]], 8]  //3
        //var arr = [1,2,[5],8] //2
        function fn(arr){
            for (i=0;i<arr.length;i++){
                if(arr[i] instanceof Array){
                    a++;
                    arr = arr[i];
                    fn(arr);
                }
            }
            return a;
        }
        console.log(fn(arr));

    二、实现一个方法,生成数组[1,2,3,4......,99],然后将数组内的项随机打乱,保证每个数出现在任意一个位置的概率相同

       var arr2 = new Array();
        for (var i = 0; i < 100; i++) {
            arr2.push(i);
        }
        // arr2.sort(() => Math.random() - 0.5); //ES6
        arr2.sort(function () {
            return Math.random() - 0.5;
        });
        console.log(arr2);

    三、给定一个数组arr和一个数值target,数组内的每一项都是数字。如果数组中某两项下,x,y相加等于target,则把这两项以[x,y]的格式放到一个空数组中。写一个方法,获得有满足条件的项,并返回最后的数组。

    注:如[4,6] 与 [6,4]则是为等价,只允许在结果中出现一次。

    例1:arr = [1, 2, 4, 7, 3, 6],target = 10,则返回:[ [ 4 , 6 ] , [ 7 , 3 ] ]

    例2:arr = [1, 2, 4, 7],target = 10,则返回:[  ]

       var arr = [1, 2, 4, 7, 3, 6];
        var target = 10;
        var brr = [];
        for (var i = 0; i < arr.length; i++) {
            for (let j = i; j < arr.length; j++) {
                if (arr[i] + arr[j] == target) {
                    var crr = [];
                    crr.push(arr[i]);
                    crr.push(arr[j]);
                    brr.push(crr)
                }
            }
        }
        console.log(brr)
  • 相关阅读:
    python学习笔记(五)os、sys模块
    Lepus_天兔的安装
    python学习笔记(四)random 、json模块
    python学习笔记(三)函数
    Jenkins的安装及邮件配置
    Nginx+tomcat配置负载均衡集群
    python学习笔记(二)文件操作和集合
    python练习
    Jmeter(十)Linux下配置安装Jmeter及执行测试任务
    Jmeter(九)压力测试
  • 原文地址:https://www.cnblogs.com/shy0113/p/11683488.html
Copyright © 2011-2022 走看看