updated 优化部分代码

This commit is contained in:
PASSER-BY
2022-09-07 23:22:15 +08:00
parent 97aa5f4384
commit 3212d3007e
6 changed files with 28 additions and 50 deletions

View File

@@ -357,24 +357,16 @@ export default {
'h,lb,w':['小婶子','小婶儿','小叔弟妇','叔弟妇','叔嫂','叔妇','叔姆','娣妇','娣姆','小叔妇','婶婶','小婶','小叔妇','小婶婶'],
'h,[ob|lb]':['伯叔'],
'h,xb,w':['妯娌','娣姒','娣姒姊妹','婶子'],
'h,xb,s':['叔侄','叔侄男','叔男'],
'h,xb,d':['叔侄女','叔女'],
'h,xb,s,s':['叔侄孙','叔孙','叔侄孙男','叔孙男'],
'h,xb,s,d':['叔侄孙女','叔孙女'],
'h,xb,d,s':['叔侄外孙','叔外孙','叔侄外孙男','叔外孙男'],
'h,xb,d,d':['叔侄外孙女','叔外孙女'],
'h,xb,s':['叔侄'],
'h,xb,d':['叔侄女'],
'h,os':['大姑子','大姑姐','大姑儿','大姑娘','姑姊','婆姐','婆婆姐','大娘姑'],
'h,os,h':['大姑夫','大姑姐夫','大亘子','婆姐夫','婆婆姐夫'],
'h,ls':['小姑子','小姑妹','小姑儿','小姑娘','姑妹','婆妹','婆婆妹'],
'h,ls,h':['小姑夫','小姑妹夫','小亘子','婆妹夫','婆婆妹夫'],
'h,xs':['姑子','夫姑'],
'h,xs,h':['姑夫','姑郎'],
'h,xs,s':['姑甥','姑甥男','姑男'],
'h,xs,d':['姑甥女','姑女'],
'h,xs,s,s':['姑甥孙','姑孙','姑甥孙男','姑孙男'],
'h,xs,s,d':['姑甥孙女','姑孙女'],
'h,xs,d,s':['姑甥外孙','姑外孙','姑外孙男','姑外孙男'],
'h,xs,d,d':['姑甥外孙女','姑外孙女'],
'h,xs,s':['姑甥'],
'h,xs,d':['姑甥女'],
// 岳家
'w,f,f,f':['曾祖岳父','曾祖丈人','太爷丈人','祖爷丈人'],
'w,f,f,m':['曾祖岳母','曾祖丈母','曾祖丈母娘','祖奶丈母娘','太奶丈母娘'],
@@ -405,24 +397,16 @@ export default {
'w,lb,w':['小舅妇','小舅姆','小舅弟妇','小舅嫂','舅弟媳','小舅妹','小舅媳妇','小妗子','小妗儿'],
'w,xb':['舅子','舅佬','妻舅','老婆舅','阿舅','亲家舅','舅老倌'],
'w,xb,w':['舅嫂','舅妇','舅姆','妻妗','妗仔','妗子','妗儿'],
'w,xb,s':['舅侄','舅侄男','舅男'],
'w,xb,d':['舅侄女','舅女'],
'w,xb,s,s':['舅侄孙','舅孙','舅侄孙男','舅孙男'],
'w,xb,s,d':['舅侄孙女','舅孙女'],
'w,xb,d,s':['舅侄外孙','舅外孙','舅侄外孙男','舅外孙男'],
'w,xb,d,d':['舅侄外孙女','舅外孙女'],
'w,xb,s':['舅侄'],
'w,xb,d':['舅侄女'],
'w,os':['大姨子','大姨姐','大姨儿','姨姐'],
'w,os,h':['大姨夫','大姨姐夫','襟兄','大尹子'],
'w,ls':['小姨子','小姨妹','小茙儿','姨妹','姨仔','姨妹子'],
'w,ls,h':['小姨夫','小姨妹夫','小茙夫','襟弟','小尹子'],
'w,xs':['姨子','妻姨'],
'w,xs,h':['连襟','连桥','两桥','姨夫','姨夫爷','一担挑','老挑','挑担','担儿挑','连襟儿','妻尹','娅'],
'w,xs,s':['姨甥','姨甥男','姨男'],
'w,xs,d':['姨甥女','姨女'],
'w,xs,s,s':['姨甥孙','姨孙','姨甥孙男','姨孙男'],
'w,xs,s,d':['姨甥孙女','姨孙女'],
'w,xs,d,s':['姨甥外孙','姨外孙','姨外孙男','姨外孙男'],
'w,xs,d,d':['姨甥外孙女','姨外孙女'],
'w,xs,s':['姨甥'],
'w,xs,d':['姨甥女'],
// 兄弟姐妹系
'ob':['哥哥','哥','胞兄','亲哥','老哥','依哥','阿哥','家兄','兄长','大佬','元兄','长兄','几哥'],
'ob,w':['嫂子','嫂','嫂嫂','阿嫂','家嫂','兄姊','兄嫂','兄妇','兄妻','几嫂'],
@@ -447,7 +431,7 @@ export default {
'xs,d':['外甥女','甥女','甥囡','甥女儿','甥闺女'],
'xs,d,h':['甥女婿','甥婿','甥儿息婿儿'],
// 子系
's':['儿子','男儿','息男','闺男','囝囝','囝男','小子','娃子','男亲','伢子','长子','次子','幼子','儿','仔','囝','子','阿仔','仔仔','后生','公子','少爷','一世孙'],
's':['儿子','男儿','息男','闺男','囝囝','囝男','囝儿','小子','娃子','男亲','伢子','长子','次子','幼子','儿','仔','囝','子','阿仔','仔仔','后生','公子','少爷','一世孙'],
's,w':['儿媳','儿媳妇','息妇儿','儿媳妇儿','新妇','新妇囝','心抱','息妇','儿妇','子妇','小妇','少奶奶','少夫人'],
's,w,f':['亲家公'],
's,w,f,f&o':['姻伯'],
@@ -553,7 +537,7 @@ export default {
's,d,d,s,w':['曾外曾外孙媳妇'],
's,d,d,d':['曾外曾外孙女'],
's,d,d,d,h':['曾外曾外孙女婿'],
'd':['女儿','千金','小姐','掌上明珠','息女','闺女','囡女','乖囡','囡囡','囡','囡','丫头','姑娘','妮子','女亲','长女','次女','幼女','女','阿女','女女'],
'd':['女儿','千金','小姐','掌上明珠','息女','闺女','囡囡','囡女','囡儿','囡','囡','丫头','姑娘','妮子','女亲','长女','次女','幼女','女','阿女','女女'],
'd,h':['女婿','姑爷','姑爷儿','女婿子','女婿儿','儿婿','子婿','息婿','小婿','郎婿','郎婿子','息婿儿','囝婿','囡婿','东床','半子'],
'd,h,f':['亲家公'],
'd,h,f,f&o':['姻伯'],

View File

@@ -12,12 +12,12 @@ for(var key in _branch){
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.indexOf(pair)>-1));
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.indexOf('?')>-1){
if(name.includes('?')){
newList.push(name.replace('?',prefix));
}else{
newList.push(prefix+name);
@@ -39,12 +39,7 @@ var branch = {
'w':['妻','内','岳','岳家','丈人'],
'h':['夫','外','公','婆家','婆婆'],
};
var allName = {};
for(var key in _map){
_map[key].forEach(function(name){
allName[name]=true;
});
}
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){
@@ -57,7 +52,7 @@ for(var key in _map){
prefixList.forEach(function(prefix){
nameList.forEach(function(name){
var newName = prefix+name;
if(!allName[newName]){ // 配偶组合的称呼不得已原有称呼冲突(如:妻舅!=妻子的舅舅;外舅公!=老公的舅公)
if(!nameSet.has(newName)){ // 配偶组合的称呼不得已原有称呼冲突(如:妻舅!=妻子的舅舅;外舅公!=老公的舅公)
_map[newKey].push(newName);
}
});

View File

@@ -14,7 +14,7 @@ var zh2number = function(text){
if(map[text]){
num = map[text];
}else{
if(text.indexOf('十')>-1){
if(text.includes('十')){
var numAttr = text.split('十');
if(!numAttr[0]){
num = 10;
@@ -23,7 +23,7 @@ var zh2number = function(text){
}
num += textAttr.indexOf(numAttr[1]);
}else{
num += textAttr.indexOf(text)>-1?textAttr.indexOf(text):0;
num += textAttr.includes(text)?textAttr.indexOf(text):0;
}
}
return num;
@@ -121,7 +121,7 @@ export function unique(arr){
var sameList = arr.filter(item=>item==item.replace(/[ol](?=s|b)/,'x').replace(/&[ol]/,''));
return arr.filter(item=>{
var temp = item.replace(/[ol](?=s|b)/,'x').replace(/&[ol]/,'');
return sameList.indexOf(item)>-1||item!=temp&&sameList.indexOf(temp)==-1;
return sameList.includes(item)||item!=temp&&!sameList.includes(temp);
}).filter((item,idx,arr) => arr.indexOf(item) === idx);
};
@@ -212,20 +212,20 @@ export function getSelectors(str){
var num = zh2number(match[0]);
for(var i in _data){
var r_i = i.replace(/(,[hw])$/,'&'+num+'$1').replace(/([^hw]+)$/,'$1&'+num);
if(_data[i].indexOf(x_name)>-1){
if(_data[i].includes(x_name)){
x_items.push(r_i);
}else if(_data[i].indexOf(r_name)>-1){
}else if(_data[i].includes(r_name)){
if(!i.match(/^[mf,]+$/)&&!r_name.match(/^[从世]/)){ // 直系祖辈不参与排序
r_items.push(r_i);
}
}
if(_data[i].indexOf(name)>-1){
if(_data[i].includes(name)){
items.push(r_i);
}
}
}else{
for(var i in _data){
if(_data[i].indexOf(name)>-1){
if(_data[i].includes(name)){
items.push(i);
}
}
@@ -354,7 +354,7 @@ export function selector2id(selector,sex){
if(!selector.match(/^,/)){
selector = ','+selector;
}
if(sex>-1&&selector.indexOf(',1')==-1&&selector.indexOf(',0')==-1){
if(sex>-1&&!selector.includes(',1')&&!selector.includes(',0')){
selector = ','+sex+selector;
}
if(selector.match(/,[mwd0](&[ol\d]+)?,w|,[hfs1](&[ol\d]+)?,h/)){ //同志关系去除
@@ -369,7 +369,7 @@ export function selector2id(selector,sex){
var item = _filter[i];
// console.log('[filter]',item['exp'],selector);
selector = selector.replace(item['exp'],item['str']);
if(selector.indexOf('#')>-1){
if(selector.includes('#')){
selector.split('#').forEach(getId);
return false;
}
@@ -475,7 +475,7 @@ export function getItemsById(id){
var gen = getGen(id);
if(gen<3&&!id.match(/[hw],/)){
_data[id].forEach(function(name){
if(!item&&name.indexOf('几')>-1){
if(!item&&name.includes('几')){
item = name.replace('几',zh);
}
});
@@ -545,10 +545,10 @@ export function getPairsByIds(id1,id2){
var list2_r = list2.map(function(selector){
return selector.replace(/&[ol\d]+/,'').replace(/([ol])([bs])/,'x$2');
});
if(list1.indexOf(id1)>-1&&list2.indexOf(id2)>-1||list1.indexOf(id2)>-1&&list2.indexOf(id1)>-1){
if(list1.includes(id1)&&list2.includes(id2)||list1.includes(id2)&&list2.includes(id1)){
result.push(_pair[key][0]);
}
if(list1_r.indexOf(id1_r)>-1&&list2_r.indexOf(id2_r)>-1||list1_r.indexOf(id2_r)>-1&&list2_r.indexOf(id1_r)>-1){
if(list1_r.includes(id1_r)&&list2_r.includes(id2_r)||list1_r.includes(id2_r)&&list2_r.includes(id1_r)){
result_r.push(_pair[key][0]);
}
}

View File

@@ -13,7 +13,6 @@ export default {
'w,m#d,h':['母婿'],
'h,f#s,w':['翁媳'],
'h,m#s,w':['婆媳'],
'f,f#s,[s|d]':['公孙'],
'[f|m],[f|m]#[s|d],[s|d]':['祖孙'],
'f,[xb|xb,w]#xb,[s|d]':['叔侄'],
'f,[xs|xs,h]#xb,[s|d]':['姑侄'],