写个近况顺便更新一下最近 javascript 用到的东西。
最近重玩 D3,重玩纯粹是想转移先前的重心,我之前太沉迷于
股票,我向来使用的解决方式就是改沉迷其它东西。
那玩 D3 的好处就是又看到一些可以写进 sanc 的东西,因为
我这次有买夺魂之镰资料片,因此有玩到一些新的东西。
不过要实装这东西还欠缺两个要素
1.菁英怪跟蓝怪
sanc 并没有开发这两种怪物的套用模组。
2.掉宝种类不够丰富
像 D3 光装备就有蓝、黄、传奇、套装等,宝石就有五种,
还有一些重要材料。
不过跟其它 mud 比起来,我们缺的还算少了因为很多东西我都
写好了。部份可以参考它(例如冒险秘境的产生方式),其它东西
则使用有 sanc 风格的东西即可。
那总之,最近在玩 D3。
======
过往我在做字串的 replace 时,遇到要取代的字串是变量时,
就会不晓得怎么做比较好,最后都是拐弯用其它的方法解决,
但最近又碰到,就google 了一下。
假设 str = "a,b,c,d,e" 然后 tmp = "," ,我想将 str 里头
所有关于 tmp 的东西都改成 " " 空格
tmp = ",";
tmp = "/"+tmp+"/g"; // 把 tmp 变成这样
str = str.replace(eval(tmp)," ");
用 eval 产生出 /tmp/g 这样的程式看得懂的东西。
原始 code 如下
$("xxx").each(function(){
ttxt=$(this).html();
if(ttxt.indexOf("#ffffff")>0)
{
$(this).html($(this).html().replace(/#ffffff/g, "black"));
$(this).html($(this).html().replace(/blue/g, "white"));
}
else
{
reg="/"+ids+"/g";
$(this).html($(this).html().replace(eval(reg),
"<font color=#ffffff style=background-color:blue>"+ids+"</font>"));
}
});
简单的说就是我写了一个 onclick 事件函数,当我在某个地方按一下
鼠标左键时,它会去遍历所有的 <xxx>...</xxx> tag,去读出包在其
中的包含 html tag 的东西(EX: <font color=red>test</font> 这样
的东西),然后只要发现里面有 #ffffff(白色),就去把它换成黑色,
并把它的底色改成白色(本来是蓝底白字,变成白底黑字)。
反之,若没发现 #ffffff 这样的东西,就把其中的 ids 这个关键字
变量所含的内容换成蓝底白字。
这样就能实现按一下,关键字就变蓝底白字,再按一下,就又变回原
本的白底黑字。
这样写可能会有点问题,但实际上是可 work 的,我的要求就是只要
可 work 就行了^^
最近还有做的事情,就是做自动表格化统计。
例如说有一个差不多100项左右的工作描述,由差不多10人去协作编
写,比方 A 写了第 1, 4, 10, 15, 23, ... 项,B 写了第 3, 7,
12, 13, 25, ... 项,...
那上面希望可以把大家写的东西“表格化”“数字化”,不然100多
项内容叭啦扒啦列出来固然很可观,上面只会知道大家这礼拜好像很
认真做很多事情,但实际上一点可读性也没有,
那表格化+数字化也很简单,问题就是,当你想要求大家去填数字时
,会遭遇一些困难的:
1.对方会认为,把落落长的东西变成简单的数字,会淡化他认真工作
的印象。
2.对方会认为,每写一项就得去新增、或去更新那些数字,很麻烦。
3.对方会认为,照旧不好吗?为何一定要配合上头的要求?
总之大家希望照旧,上面希望看到表格+数字,那怎么做?
最直觉的想法就是
1.表格+数字 与 100多项的工作描述并存
2.数字透过自动化去产生,不需要人工去填
程式的写法就是
// 100多列工作描述
foreach(tmp in tmps)
{
if((tmp.indexOf("有什么关键字") && tmp.indexOf("有什么关键字")) ||
!tmp.indexOf("关键字"))
某个表格内的数字就+1;
else if(tmp.indexOf("有什么关键字") &&
(tmp.indexOf("有什么关键字") || tmp.indexOf("有什么关键字")))
某个表格内的数字就+1;
.
.
}
写法各家不同,但简单描述就是像上面那样。因为才 10 几个人,
相当于只要解析 10 几种不同的工作描述即可,又因为大家心态偏
照旧保守,因此他们使用的描述语法也是很固定的,既然很固定,
就很方便做解析。
像这样
https://i.imgur.com/DtAnWMt.jpg
缺点就是语法一旦有更动,就可能产生 bug。mud 有个好处就是可
以用 catch 包起来,来预防因 bug 使得整个网页无法顺利执行开
启,但 asp ... asp 可能有只是没研究,印象中是有的。
目前都是用手动除错,像早上才又做完 debug。那我的原则是如果
这 bug 不难处理,就写进 code 内处理就好,真的很麻烦的才会请
对方在做描述时可留意一些地方。这是客制化考量。