12

1-var str = “hgDzGHjhcxghvcgxzhjzcgjhxzgcjhgsduyfuys”将字符串中出现次数最多的字母弹框输出

 1 var str = 'hgDzGHjhcxghvcgxzhjzcgjhxzgcjhgsduyfuys';
 2   var result = maxN(str);
 3   function maxN(str) { //定义一个json对象用于保存str的每一项以及出现次数。
 4   var json = {}; //遍历str,循环其中的每一个字符,将某个字符的值及出现的个数拿出来作为json的key和value
 5    for(var i=0;i<str.length;i++){ //判断json中是否有当前str的值
 6      if(!json[str.charAt(i)]){
 7      //如果不存在 就将当前值添加到json中去,并设置1
 8      json[str.charAt(i)] = 1;
 9      } else { //如果存在的话就让数组中已有的当前值的value值++;
10      json[str.charAt(i)] ++;
11     }
12     } //存储出现次数最多的值和次数
13      var number = '';
14      var num = 0;
15     //遍历json 使用打擂算法统计需要的值
16    for(var j in json){ //如果当前项大于下一项
17     if (json[j]>num) { //就让当前值更改为出现最多次数的值
18     num = json[j]; number = j;
19     }
20   } return {
21   number:number, num:num
22    }
23   }
24   alert('该字符串出现'+ result.num+'次的'+ result.number);

2-举例实现对象的深拷贝

 1 var json1={"name":"小白","age":18,"arr1":[1,2,3,4,5],"arr3":[{"name1":"小白"},{"job":"前端开发"}]};
 2 var json2={};
 3 function copy(obj1,obj2){
 4   var obj2=obj2||{}; //最初的时候给它一个初始值=它自己或者是一个json
 5   for(var name in obj1){
 6     if(typeof obj1[name] === "object"){ //先判断一下obj1[name]是不是一个对象
 7       obj2[name]= (obj1[name].constructor===Array)?[]:{}; //我们让要复制的对象的name项=数组或者是json
 8       copy(obj1[name],obj2[name]); //然后来无限调用函数自己 递归思想
 9     }else{
10       obj2[name]=obj1[name];  //如果不是对象,直接等于即可,不会发生引用。
11     }
12   }
13   return obj2; //然后在把复制好的对象给return出去
14 }
15 json2=copy(json1,json2)
16 json1.arr1.push(6);
17 alert(json1.arr1);  //123456
18 alert(json2.arr1);  //123456

拷贝总结使用JSON.pare()和JSON.stringify()对对象进行深拷贝

3-举例实现对象方法的继承
 1   function Parent(firstname)
 2 {
 3   this.fname=firstname;
 4   this.age=40;
 5   this.sayAge=function()
 6   {
 7     console.log(this.age);
 8   }
 9 }
10 function Child(firstname)
11 {
12   this.parent=Parent;
13   this.parent(firstname);
14   delete this.parent;
15   this.saySomeThing=function()
16   {
17     console.log(this.fname);
18     this.sayAge();
19   }
20 }
21 var mychild=new Child("李");
22 mychild.saySomeThing();

4-写一个左中右布满全屏,其中左右固定宽度 200px,中间部分自适应,要求先加载中间部分,写出结构和样式

css样式默认加载顺序

样式表的元素选择器选择越精确,则其中的样式优先级越高:

id选择器指定的样式 > 类选择器指定的样式 > 元素类型选择器指定的样式

对于相同类型选择器制定的样式,在样式表文件中,越靠后的优先级越高,所以把类选择器center写在后面就可以了。

 1 <!doctype html>
 2 <html lang="en">
 3  <head>
 4   <meta charset="UTF-8">
 5   <title>Document</title>
 6   <style>
 7     html,body{
 8         margin: 0;
 9         width: 100%;
10     }
11     #leftDiv,#rightDiv{
12         width: 200px;
13         height: 200px;
14         position: absolute;
15         top: 0;
16     }
17     #leftDiv{
18         background: #16A05D;
19         left: 0;
20     }
21     #rightDiv{
22         background: #DC5044;
23         right: 0;
24     }
25     #centerDiv{
26         background: #FFCD41;
27         height: 200px;
28     }
29   </style>
30  </head>
31  <body>
32     <div id="leftDiv">左边div</div>
33     <div id="centerDiv">中间div</div>
34     <div id="rightDiv">右边div</div>
35  </body>
36 </html>
5-封装一个 jqery 的插件   
 1 (function($){
 2     /**定义函数,jquery插件调用函数*/
 3     $.fn.select=function(options,param){
 4         if(typeof options == "string"){
 5             var method = $.fn.select.methods[options];
 6             if(method){ return method(this,param); }
 7         } 
 8     }
 9     /**定义函数事件*/
10     $.fn.select.methods={
11         onl oadSuccess: function(){},
12         onSelect: function(record){},
13         loadData: function(jq, data){
14             return jq.each(function(){ loadData(this, data); });
15         },
16         reload: function(jq, ajax){
17             return jq.each(function(){ request(this, ajax); });
18         },
19         setValue: function(jq, value){
20             return jq.each(function(){ setValue(this, value); });
21         }
22     }
23     /**函数默认属性及事件*/
24     $.fn.select3.defaults = {
25         id: null,
26         disabled: false,
27         //url:base_url+'/select/getSelectProj',
28         dataType:'json',
29         type:'GET',
30         //contentType:'application/json',
31         valueField: 'uuid',
32         textField: 'name',
33         onl oadSuccess: function(data){},// 加载成功时触发的事件
34         onl oadError: function(err){},
35         onSelect:function(row){}// 选中时触发的事件
36     };
37         /**请求数据*/
38     function request(target, options){
39         var opts = $.data(target, 'select3').options;
40         if (options.url){
41             opts = $.extend(opts, options);
42         }else{
43             return;
44         }
45         $.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); } })
46     };
47     /**加载数据*/
48     function loadData(target, data){
49         var rows = data.rows;
50         var opts = $.data(target, 'select3').options;
51         $(target).empty();
52         for(var i=0,j=rows.length; i<j; i++){
53             var item = $('<option></option>').appendTo(target);
54             item.attr('value', rows[i][opts.valueField]);
55             item.html(rows[i][opts.textField]);
56         }
57 
58         opts.onLoadSuccess.call(target, data);// 回调成功加载事件方法
59         $(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)
60  
61 //使用
62 <script src="select.js"></script>
63 <script language="javascript">
64     // 初始化
65     $("#id").select({
66         url:,
67         onl oadSuccess:function(){
68         }
69     });
70     // 调用指定函数
71     $("#id").("reload",{参数});
72 </script>

 

 
上一篇:python数据可视化 | pyecharts轻松绘制仪表图与散点图


下一篇:票房和口碑称霸国庆档,用 Python 爬取猫眼评论区看看电影《我和我的家乡》到底有多牛