Project1
标题:
请问如下代码究竟是什么意思呢?
[打印本页]
作者:
脚本盲
时间:
2020-4-27 02:09
标题:
请问如下代码究竟是什么意思呢?
本帖最后由 脚本盲 于 2020-4-27 02:19 编辑
var ary = ['1','3','4'];
for (var key in $gameSelfSwitches._data) {
console.log(key)
if (key.match(/(\d+),\d+,[ABCD]/)) {
if (ary.contains(RegExp.$1)){
$gameSelfSwitches._data[key] = false;
}
}
作者:
脚本盲
时间:
2020-4-27 02:09
这个是在Yanna的范例包里看到的。
作者:
MCCF
时间:
2020-4-27 08:52
建议参见正则表达式相关的内容,来更好的理解。
$gameSelfSwitches._data[id]表示游戏的第id号开关。
这个意思也很好理解,因为一般对开关的存储键值是 mapid, eventid, switchid 这样的形式,所以遍历所有键值,找到匹配(\d+),\d+,[ABCD]这个形式的键值(为了把无关属性区分开来)。
然后检查第一个括号中的内容(mapid),如果包含在ary数组内,则将该开关设为关闭(false)。也就是说,这段代码把1,3,4这三个ID的地图上所有独立开关关闭。
数组ary = [字符串'1',字符串'3',字符串'4']
for(遍历$gameSelfSwitches._data的属性key){
控制台.打印(key);
if(key.匹配(/(\d+),\d+,[ABCD]/)){ //详情请参见正则表达式
if(ary.包含(匹配组1的内容)){
$gameSelfSwitches._data[key] = false;
}
}
}
复制代码
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1