【JS】利用中国古老的天干地支给文件命名
【需求】
有若干实质为SQL的变量,取值后生成文件下载,需要拟定一个不容易重复的初始名,本以时间戳命名,后发现过长且不好记忆。
【解决方案】
从天干中取一个随机值,从地支中取一个随机值,合成初始名。此名兼具简短、重复率低和易记的特点。
【JS代码】
//---------------------------------------------- // 使用天干地支生成名字,有简短重名率低的优势 //---------------------------------------------- function generateName(){ var arr1=['甲','乙','丙','丁','戊','己','庚','辛','壬','癸']; var idx1=Math.floor(Math.random()*arr1.length); var arr2=['子','丑','寅','卯','辰','巳','午','未','申','酉','戌','亥']; var idx2=Math.floor(Math.random()*arr2.length); return arr1[idx1]+arr2[idx2]; }
【有图有真相】
【全部代码】
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>天干地支命名法</title> <style type="text/css"> </style> </head> <body> <button onclick="javascript:addName('nameOl');">Add</button> <ol id="nameOl"> </ol> </body> </html> <script type="text/javascript"> <!-- function addName(olId){ var ol=document.getElementById(olId); var li=document.createElement("li"); li.appendChild(document.createTextNode(generateName())); ol.appendChild(li); } //---------------------------------------------- // 使用天干地支生成名字,有简短重名率低的优势 //---------------------------------------------- function generateName(){ var arr1=['甲','乙','丙','丁','戊','己','庚','辛','壬','癸']; var idx1=Math.floor(Math.random()*arr1.length); var arr2=['子','丑','寅','卯','辰','巳','午','未','申','酉','戌','亥']; var idx2=Math.floor(Math.random()*arr2.length); return arr1[idx1]+arr2[idx2]; } //--> </script>
END