7.27练习

作者: 意蜀 | 来源:发表于2019-07-27 19:55 被阅读3次
    1. 构造一个函数func(arr,x),使用sort()函数将给定的数组arr随机排序,
      并打印出该数组,以及变量x在该数组中的下标
    • 例如: func([1,2,3,4,5,6],5)
    • 输出:
      arr : [1,4,5,3,2,6] (随机排序)
      index : 2

    正解吗??NO

    function func(arr,x){
              console.log(arr.sort());
              console.log(arr.indexOf(x));
          }
          func([1,2,3,4,5,6,7,8,9,10],5);
    

    这个函数只是简单的采用arr.sort()方法来实现的,但是如题所示随机数组。根据arr.sort()方法,我们可以写一个随机函数,引入到该方法里面来实现随机函数

    //随机函数,随机产生一个数,如果数大于0.5,a在b前面,否则a在b后面
     function randomSort(a, b) {
                return Math.random() > 0.5 ? -1 : 1;
            }
            function func(arr,x){
                console.log('arr:'+arr.sort(randomSort));
                for(var i=0;i<arr.length;i++){
                    if(arr[i]==x){
                        console.log("index:"+ i);
                    }
                }
                console.log(arr.sort(randomSort));
            }
            func([1,2,3,4,5,6],5);
    

    更简单的做法(只是代码更少而已)

           function randomSort(a, b) {
                return Math.random() > 0.5 ? -1 : 1;
            }
            function func(arr,x){
                console.log('arr:'+arr.sort(randomSort));
               console.log('index:'+arr.indexOf(x));
            }
            func([1,2,3,4,5,6],5);
    
    1. 构造一个函数func(arr),str1str2都是字符串,
      使用forEach()函数比较两 个字符串,如果str1包含了str2中的所有字符,
      函数返回true,否则返回false
    • 例如:
      func(["hello", "hey"]) //false,没有y
      func(["Mary", "Army"]) //true
    function func(arr){
          //所有字符不分大小写
          var arr1=arr[0].toLowerCase().split('');
          var arr2=arr[1].toLowerCase().split('');
          var flag=true;
          arr2.forEach(element => {
            //根据数组的indexOf()方法的特性
              if(arr1.indexOf(element)==-1){
                  flag=false;
              }
          });
          return flag;
      }
     func(["hello", "hey"])  //false,没有y
    func(["Mary", "Army"]) //true
    
    1. 构造一个函数func(arr,num),使用sort(),slice(),push(),将arr
      分成num大小的数组,将每一个小数组升序排序后放入同一个数组返回
    • 例如:
      func([1,5,4,2,3,8,7],2)
      输出:
      [[1,5],[2,4],[3,8],[7]]
    • 例如:
      func([1,5,4,2,3,8,7],3)
      输出:
      [[1,4,5],[2,3,8],[7]]
      function func(arr,num){
          var b=[];//定义空数组存放
        for(var i=0;i<arr.length;){
           b.push(arr.slice(i,i+num).sort());
            i+=num;//每隔num个
        }
        return b;
      }
        func([1,5,4,2,3,8,7],3);//  [[1,4,5],[2,3,8],[7]]
    
    1. 构造一个函数func(str1,str2),使用substr()方法,判断str1是否以
      str2结尾,返回truefalse
    • 例如:
      func('an apple','apple') //true
      func('not an apple','le') //true
          function func(str1,str2){
        //获取两个字符串的长度
               var a=str1.length;
               var b=str2.length;
               if(str1.substr(a-b,b)==str2){
                   return true;
               }
               else{
                   return false;
               }
           }
           func('an apple','apple')  //true
    
    1. 构造一个函数func(str),将该字符串倒置并返回
    • 例如:
      func('asdfgh') //hgfdsa
      func('apple') //elppa
    function func(str){
      return  str.split('').reverse().join('');
    }
    func("hello");//olleh
    

    详情请点击翻转字符串

    相关文章

      网友评论

        本文标题:7.27练习

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