var str = “hgDzGHjhcxghvcgxzhjzcgjhxzgcjhgsduyfuys”将字符串中出现次数最多的字母弹框输出、举例实现对象的深拷贝、举例实现对象方法的继承、写一个左中右布满全屏,其中左右固定宽度 200px,中间部分自适应,要求先加载中间部分,写出结构和样式、封装一个 jqery 的插件

1-var str = “hgDzGHjhcxghvcgxzhjzcgjhxzgcjhgsduyfuys”将字符串中出现次数最多的字母弹框输出
  var str = 'hgDzGHjhcxghvcgxzhjzcgjhxzgcjhgsduyfuys';
   var result = maxN(str);
  function maxN(str) { //定义一个json对象用于保存str的每一项以及出现次数。
  var json = {}; //遍历str,循环其中的每一个字符,将某个字符的值及出现的个数拿出来作为json的key和value
   for(var i=0;i<str.length;i++){ //判断json中是否有当前str的值
     if(!json[str.charAt(i)]){
     //如果不存在 就将当前值添加到json中去,并设置1
     json[str.charAt(i)] = 1;
     } else { //如果存在的话就让数组中已有的当前值的value值++;
     json[str.charAt(i)] ++;
    }
    } //存储出现次数最多的值和次数
     var number = '';
     var num = 0;
    //遍历json 使用打擂算法统计需要的值
   for(var j in json){ //如果当前项大于下一项
    if (json[j]>num) { //就让当前值更改为出现最多次数的值
    num = json[j]; number = j;
    }
  } return {
  number:number, num:num
   }
  }
  alert('该字符串出现'+ result.num+'次的'+ result.number);
2-举例实现对象的深拷贝
  //使用递归的方式实现数组、对象的深拷贝
  function deepClone1(obj) {
  //判断拷贝的要进行深拷贝的是数组还是对象,是数组的话进行数组拷贝,对象的话进行对象拷贝
  var objClone = Array.isArray(obj) ? [] : {};
  //进行深拷贝的不能为空,并且是对象或者是
  if (obj && typeof obj === "object") {
    for (key in obj) {
      if (obj.hasOwnProperty(key)) {
        if (obj[key] && typeof obj[key] === "object") {
          objClone[key] = deepClone1(obj[key]);
        } else {
          objClone[key] = obj[key];
        }
      }
    }
  }
  return objClone;
}
3-举例实现对象方法的继承
  function Parent(firstname)
{
  this.fname=firstname;
  this.age=40;
  this.sayAge=function()
  {
    console.log(this.age);
  }
}
function Child(firstname)
{
  this.parent=Parent;
  this.parent(firstname);
  delete this.parent;
  this.saySomeThing=function()
  {
    console.log(this.fname);
    this.sayAge();
  }
}
var mychild=new Child("李");
mychild.saySomeThing();
4-写一个左中右布满全屏,其中左右固定宽度 200px,中间部分自适应,要求先加载中间部分,写出结构和样式
 <!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    html,body{
        margin: 0;
        width: 100%;
    }
    #leftDiv,#rightDiv{
        width: 200px;
        height: 200px;
        position: absolute;
        top: 0;
    }
    #leftDiv{
        background: #16A05D;
        left: 0;
    }
    #rightDiv{
        background: #DC5044;
        right: 0;
    }
    #centerDiv{
        background: #FFCD41;
        height: 200px;
    }
  </style>
 </head>
 <body>
    <div id="leftDiv">左边div</div>
    <div id="centerDiv">中间div</div>
    <div id="rightDiv">右边div</div>
 </body>
</html>
5-封装一个 jqery 的插件
  (function($){
    /**定义函数,jquery插件调用函数*/
    $.fn.select=function(options,param){
        if(typeof options == "string"){
            var method = $.fn.select.methods[options];
            if(method){ return method(this,param); }
        } 
    }
    /**定义函数事件*/
    $.fn.select.methods={
        onLoadSuccess: function(){},
        onSelect: function(record){},
        loadData: function(jq, data){
            return jq.each(function(){ loadData(this, data); });
        },
        reload: function(jq, ajax){
            return jq.each(function(){ request(this, ajax); });
        },
        setValue: function(jq, value){
            return jq.each(function(){ setValue(this, value); });
        }
    }
    /**函数默认属性及事件*/
    $.fn.select3.defaults = {
        id: null,
        disabled: false,
        //url:base_url+'/select/getSelectProj',
        dataType:'json',
        type:'GET',
        //contentType:'application/json',
        valueField: 'uuid',
        textField: 'name',
        onLoadSuccess: function(data){},// 加载成功时触发的事件
        onLoadError: function(err){},
        onSelect:function(row){}// 选中时触发的事件
    };
        /**请求数据*/
    function request(target, options){
        var opts = $.data(target, 'select3').options;
        if (options.url){
            opts = $.extend(opts, options);
        }else{
            return;
        }
        $.ajax({ url : opts.url, type : opts.type, data : opts.param, //dataType : opts.dataType, contentType : opts.contentType, success:function(data){ loadData(target, data); }, error:function(){ opts.onLoadError.apply(this, arguments); } })
    };
    /**加载数据*/
    function loadData(target, data){
        var rows = data.rows;
        var opts = $.data(target, 'select3').options;
        $(target).empty();
        for(var i=0,j=rows.length; i<j; i++){
            var item = $('<option></option>').appendTo(target);
            item.attr('value', rows[i][opts.valueField]);
            item.html(rows[i][opts.textField]);
        }

        opts.onLoadSuccess.call(target, data);// 回调成功加载事件方法
        $(target).change(function(){ var itemValue = $(this).children('option:selected').val(); for(var i=0,j=rows.length; i<j; i++){ if (rows[i][opts.valueField] == itemValue){ opts.onSelect.call(target, rows[i]); return; } } }); }; /**设置值*/ function setValue(target, value){ var opts = $.data(target, 'select3').options; $(target).val(value); }; })(jQuery)
 
//使用
<script src="select.js"></script>
<script language="javascript">
    // 初始化
    $("#id").select({
        url:,
        onLoadSuccess:function(){
        }
    });
    // 调用指定函数
    $("#id").("reload",{参数});
</script>
posted @ 2021-02-07 23:35  何大勇  阅读(518)  评论(0)    收藏  举报