65 lines
2.0 KiB
JavaScript
65 lines
2.0 KiB
JavaScript
// 默认完整映射关系
|
|
import _main from './main';
|
|
import _prefix from './prefix';
|
|
import _branch from './branch';
|
|
|
|
var _map = {};
|
|
|
|
// 分支关系
|
|
for(var key in _branch){
|
|
var tag = key.match(/\{.+?\}/)[0];
|
|
var nameList = _branch[key];
|
|
for(var k in _prefix[tag]){
|
|
var prefixList = _prefix[tag][k];
|
|
var newKey = key.replace(tag,k);
|
|
var isFilter = ['h,h','w,w','w,h','h,w'].some(pair=>(newKey.includes(pair)));
|
|
var newList = [];
|
|
if(!isFilter){
|
|
prefixList.forEach(function(prefix){
|
|
nameList.forEach(function(name){
|
|
if(name.includes('?')){
|
|
newList.push(name.replace('?',prefix));
|
|
}else{
|
|
newList.push(prefix+name);
|
|
}
|
|
});
|
|
});
|
|
_map[newKey] = [].concat(_map[newKey]||[],newList);
|
|
}
|
|
}
|
|
}
|
|
// 主要关系
|
|
for(var key in _main){
|
|
_map[key] = [].concat(_main[key],_map[key]||[]);
|
|
}
|
|
// 版权彩蛋
|
|
_map['o']=['passer-by.com','\u4f5c\u8005'];
|
|
// 配偶关系
|
|
var branch = {
|
|
'w':['妻','内','岳','岳家','丈人'],
|
|
'h':['夫','外','公','婆家','婆婆'],
|
|
};
|
|
var nameSet = new Set(Object.values(_map).flat());
|
|
for(var key in _map){
|
|
if(key.match(/^[fm]/)||key.match(/^[olx][bs]$|^[olx][bs],[^mf]/)){
|
|
for(var k in branch){
|
|
var newKey = k+','+key;
|
|
if(!_map[newKey]){
|
|
_map[newKey] = [];
|
|
}
|
|
var prefixList = branch[k];
|
|
var nameList = _map[key];
|
|
prefixList.forEach(function(prefix){
|
|
nameList.forEach(function(name){
|
|
var newName = prefix+name;
|
|
if(!nameSet.has(newName)){ // 配偶组合的称呼不得已原有称呼冲突(如:妻舅!=妻子的舅舅;外舅公!=老公的舅公)
|
|
_map[newKey].push(newName);
|
|
}
|
|
});
|
|
});
|
|
}
|
|
}
|
|
}
|
|
|
|
export default _map;
|