美文网首页
07-26 js习题

07-26 js习题

作者: 小本YuDL | 来源:发表于2018-07-26 21:47 被阅读13次

    1.打平嵌套数组 [1, [2, [3], 4], 5] => [1, 2, 3, 4, 5]

    let arr = [1,[2,[3],4],5];
        var brr=arr.toString().split(",");//先转换成字符串再转换成字符数组
        for(var i=0;i<brr.length;i++){
            brr[i]=parseInt(brr[i])
        }
        console.log(brr);
    

    2.用js实现随机选取10~100之间的10个数字,存入一个数组,并排序。

       let arr = [];
        function Random_sort() {
            for(let i = 0;i<10;i++)
            {
                let per = Math.floor(Math.random()*90+10);
                arr.push(per);
            }
            return  arr.sort();
        }
        console.log(Random_sort());
    

    3 .寻找两个有序数组最小相同元素
    a = [1, 2, 5, 9, 10]
    b = [3, 4, 6, 9, 10]

      let arr = [4, 3, 5, 9, 10];
      let brr = [3, 4, 5, 9, 10];
      let crr = [];
      function min_same(arr,brr) {
          for(let i = 0;i<arr.length;i++){
              for(let j= 0;j<brr.length;j++){
                  if(arr[i] === brr[j]){
                      crr.push(arr[i]);
                  }
              }
          }
         return  Math.min.apply(null,crr);//找出最小值
      }
      console.log(min_same(arr,brr));
    
    
    方法: alert(Math.max.apply(null, arr));//最大值
    alert(Math.min.apply(null, arr));//最小值
    
    

    4.选择题
    1.(true + false) > 2 + true;
    执行代码该代码的结果是
    A.True B.false C.TypeError D.NaN

    2.执行如下代码:
    function aaa(){
    return
    {
    test:1;
    };
    }
    alert(typeof aaa());
    A.Function B.object C.number D.undefined
    因为return 后面加换行,js中会自动在后面添加一个分号,所以返回值为undefined。

    3.执行如下代码:
    function bar(){
    return foo;
    foo=10;
    function foo(){}
    var foo="11";
    }
    alert(typeof bar());
    A.number B.function C.undefined D.string E.Error
    函数声明会被提前,所以先执行 function foo(){},再返回,结果就是function。

    ★打平嵌套数组小方法

    1.flatten()
    var flatten = function(input, shallow, strict, startIndex) {
    // ...
    };
    flatten()有四个参数。
    input即为需要展开的数组;
    shallow是个布尔值,如果为 false,则表示数组是深度展开,如果为 true 则表示只展开一层;
    startIndex表示数组展开的起始位置;
    strict 也是个布尔值,当 shallow 为 true 并且 strict 也为 true 时,能过滤 input 参数元素中的非数组元素。如果 strict 为 true 并且 shallow 为 false,那么调用 flatten 方法的结果只能是 []。(有点难哇)

    var res = flatten([5, 6, [1, 2], [3, 4]], true, true);
    console.log(res); // => [1, 2, 3, 4]
    深度展开,过滤掉非数组元素,则5,6被过滤掉了。
    

    2.数据类型转换

    var add=arr.join(",").split(",")// 或者:var add=arr.toString().split(",")
    先转换成字符串再转换成字符数组
    for(var i=0;i<add.length;i++){
         add[i]=parseInt(add[i])
    }
    console.log(add);
    

    3.递归

    var arr2=[];
    function result(arr1,arr2){
    for(var i=0;i<arr1.length;i++){
         if(typeof arr1[i]==="number"){
                arr2.push(arr1[i]);
         }
        else{
             result(arr1[i],arr2);
       }
    }
    }
    result(arr,arr2);
    console.log(arr2);
    

    相关文章

      网友评论

          本文标题:07-26 js习题

          本文链接:https://www.haomeiwen.com/subject/sshimftx.html