让前端飞Web前端之路

7.27练习

2019-07-27  本文已影响3人  意蜀
  1. 构造一个函数func(arr,x),使用sort()函数将给定的数组arr随机排序,
    并打印出该数组,以及变量x在该数组中的下标

正解吗??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
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大小的数组,将每一个小数组升序排序后放入同一个数组返回
  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
      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),将该字符串倒置并返回
function func(str){
  return  str.split('').reverse().join('');
}
func("hello");//olleh

详情请点击翻转字符串

上一篇 下一篇

猜你喜欢

热点阅读