【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

浙公网安备 33010602011771号