zoukankan      html  css  js  c++  java
  • 数组字符串循环的项目中利用

    最近在项目中遇到一个需求:一个弹层里有32个车牌首字(中文汉字);用户点击哪一个并且提交并且成功数据交互后,这个汉字将存入cookie中,当用户下次打开这个弹层时,常用车牌首字将显示从cookie里取到的值,只显示排名靠前5的首汉字;经过我的折腾,折腾出来了,考虑到cookie存的小,我控制了保存的字符串长度;总结每个难点,成长自己;

      1 <!DOCTYPE html>
      2 <html lang="en">
      3 <head>
      4     <meta charset="UTF-8">
      5     <title>car</title>
      6 </head>
      7 <body>
      8     <input type="text" id="ipt"><button id="btn">按钮</button>
      9     <p id="p1"></p>
     10 </body>
     11 <script>
     12 //设置Cookie
     13 function setCookie(name,value,iDay){
     14     var oDate=new Date();
     15     oDate.setDate(oDate.getDate()+iDay);
     16     document.cookie=name+'='+value+';expires='+oDate;
     17 }
     18 //获取Cookie
     19 function getCookie(name){
     20     var arr=document.cookie.split('; ');
     21     for(var i=0;i<arr.length;i++){
     22         var arr2=arr[i].split('=');
     23         if(arr2[0]==name){
     24             return arr2[1];
     25         }
     26     }
     27     return '';        
     28 }
     29 //删除Cookie
     30 function deleteCookie(name){
     31     setCookie(name,1,-1);
     32 }    
     33 //
     34 function saveToCookie(str){
     35     var clickStr=str;
     36     if(getCookie('carCommon')==''){//不存在这个cookie字段 就加个
     37         setCookie('carCommon',clickStr);
     38     }else{
     39         var oldCookie=getCookie('carCommon');
     40         if(oldCookie.length>200){//如果cookie存取的长度超过200 超过200的值截取前200个字段即可
     41             setCookie('carCommon',oldCookie.slice(0,200));
     42         }else{
     43             setCookie('carCommon',oldCookie+clickStr);
     44         }
     45         
     46     }
     47 }
     48 //
     49 function getData(str){
     50     var head=[];
     51     var obj=[];
     52     for(var i=0;i<str.length;i++){
     53         var key=str[i];
     54         if(!obj[key]){
     55             obj[key]=1
     56         }else{
     57             obj[key]++
     58         }
     59     }
     60     Max(obj);
     61     function Max(objJosn){
     62         var max=0;
     63         var newStr='';
     64         for(var key in objJosn){
     65             if(objJosn[key]>max){
     66                 max=objJosn[key];
     67                 newStr=key;
     68             }
     69         }
     70         if(newStr==''){
     71             head=head;
     72             return false;
     73         }
     74         head.push(newStr);
     75         delete objJosn[newStr];
     76         Max(objJosn);    
     77     }
     78     var arr1=[];
     79     for(var i=0;i<head.length;i++){
     80         if(head.length<=5){
     81 
     82             arr1.push(head[i]);
     83         }else{
     84             if(i===5){
     85                 break;
     86             }else{
     87                 arr1.push(head[i]);
     88             }
     89         }
     90     }
     91     return arr1;
     92 }
     93 
     94 var ipt=document.querySelector('#ipt');
     95 document.querySelector('#btn').onclick=function(){
     96     saveToCookie(ipt.value);
     97     document.querySelector('#p1').innerHTML=getCookie('carCommon');
     98     console.log(getData(getCookie('carCommon')))
     99 }
    100 </script>
    101 </html>

    用到的技术要点:cookie的设置获取,取出字符串中出现次数最多的字符串,删除属性,迭代循环;

  • 相关阅读:
    Windows Server 2003 SP2(32位) 中文版 下载地址 光盘整合方法
    用Recycle()方法对Java对象的重要性
    Lotus中千奇百怪的 $$
    Developing a simple application using steps "User Decision" and "Mail"(1) 沧海
    沟通中的情绪管理(演讲稿) 沧海
    人只有在压力之下,才可能成功,没做一件事,都必须成功,不许言败 沧海
    什么是IDOC,以及IDOC的步骤 沧海
    VS2008 Professional Edition CHS中的deffactory.dat读取错误 沧海
    Including custom text in the step "User Decision" 沧海
    SAP Upgrade Strategy 沧海
  • 原文地址:https://www.cnblogs.com/studyshufei/p/8672941.html
Copyright © 2011-2022 走看看