// 默认完整映射关系 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;