updated 变量声明修改

This commit is contained in:
PASSER-BY 2023-01-13 23:04:03 +08:00
parent 15bcd4ebca
commit 8ef4c3eb88
9 changed files with 141 additions and 141 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -3,8 +3,8 @@
*/ */
import {modeData as _data} from './mode'; import {modeData as _data} from './mode';
var _cache = {}; let _cache = {};
for(var key in _data){ for(let key in _data){
_data[key].forEach(function(name){ _data[key].forEach(function(name){
if(typeof _cache[name]=='undefined'){ if(typeof _cache[name]=='undefined'){
_cache[name] = []; _cache[name] = [];

View File

@ -9,7 +9,7 @@ import {modeData as _data} from './mode';
// 逆转ID // 逆转ID
export function reverseId(id,sex){ export function reverseId(id,sex){
var hash = { let hash = {
f:['d','s'], f:['d','s'],
m:['d','s'], m:['d','s'],
h:['w',''], h:['w',''],
@ -23,7 +23,7 @@ export function reverseId(id,sex){
os:['ls','lb'], os:['ls','lb'],
xs:['xs','xb'] xs:['xs','xb']
}; };
var age = ''; let age = '';
if(id.match(/&o$/)){ if(id.match(/&o$/)){
age = '&l'; age = '&l';
}else if(id.match(/&l$/)){ }else if(id.match(/&l$/)){
@ -39,15 +39,15 @@ export function reverseId(id,sex){
sex = 0; sex = 0;
} }
} }
var result = []; let result = [];
var doing = function(sex){ let doing = function(sex){
var sid = (','+sex+','+id).replace(/,[fhs]|,[olx]b/g,',1').replace(/,[mwd]|,[olx]s/g,',0'); let sid = (','+sex+','+id).replace(/,[fhs]|,[olx]b/g,',1').replace(/,[mwd]|,[olx]s/g,',0');
sid = sid.substring(0,sid.length-2); sid = sid.substring(0,sid.length-2);
var id_arr = id.split(',').reverse(); let id_arr = id.split(',').reverse();
var sid_arr = sid.split(',').reverse(); let sid_arr = sid.split(',').reverse();
var arr = id_arr.map((id,i)=>hash[id][sid_arr[i]]); let arr = id_arr.map((id,i)=>hash[id][sid_arr[i]]);
var r_id = arr.join(','); let r_id = arr.join(',');
var gen = getGenById(r_id); let gen = getGenById(r_id);
return r_id +(gen?'':age); return r_id +(gen?'':age);
}; };
if(sex<0){ if(sex<0){
@ -63,20 +63,20 @@ export function reverseId(id,sex){
// ID列表去重 // ID列表去重
export function filterId(arr){ export function filterId(arr){
var sameList = arr.filter(item=>item==item.replace(/[ol](?=[s|b])/g,'x').replace(/&[ol]/,'')); let sameList = arr.filter(item=>item==item.replace(/[ol](?=[s|b])/g,'x').replace(/&[ol]/,''));
return arr.filter(item=>{ return arr.filter(item=>{
var temp = item.replace(/[ol](?=[s|b])/g,'x').replace(/&[ol]/,''); let temp = item.replace(/[ol](?=[s|b])/g,'x').replace(/&[ol]/,'');
return sameList.includes(item)||item!=temp&&!sameList.includes(temp); return sameList.includes(item)||item!=temp&&!sameList.includes(temp);
}).filter((item,idx,arr) => arr.indexOf(item) === idx); }).filter((item,idx,arr) => arr.indexOf(item) === idx);
}; };
// 通过ID获取世代数 // 通过ID获取世代数
export function getGenById(id){ export function getGenById(id){
var gMap = {'f':1,'m':1,'s':-1,'d':-1}; let gMap = {'f':1,'m':1,'s':-1,'d':-1};
var arr = id.split(','); let arr = id.split(',');
var gen = 0; let gen = 0;
arr.forEach(function(sub){ arr.forEach(function(sub){
var s = sub.replace(/&[ol\d]+/,''); let s = sub.replace(/&[ol\d]+/,'');
gen += gMap[s]||0; gen += gMap[s]||0;
}); });
return gen; return gen;
@ -84,14 +84,14 @@ export function getGenById(id){
// 通过ID获取关系称呼 // 通过ID获取关系称呼
export function getItemsById(id){ export function getItemsById(id){
var items = []; let items = [];
var getData = function(key){ let getData = function(key){
var res = []; let res = [];
if(_data[key]){ if(_data[key]){
res.push(_data[key][0]); res.push(_data[key][0]);
}else{ }else{
var ids = []; let ids = [];
var k = key.replace(/[ol](b|s)/,'x$1'); let k = key.replace(/[ol](b|s)/,'x$1');
if(_data[k]){ if(_data[k]){
ids.push(k); ids.push(k);
} }
@ -111,12 +111,12 @@ export function getItemsById(id){
}; };
// 对排序进行处理 // 对排序进行处理
if(id.match(/&([\d]+)(,[hw])?$/)){ if(id.match(/&([\d]+)(,[hw])?$/)){
var num = id.match(/&([\d]+)(,[hw])?$/)[1]; let num = id.match(/&([\d]+)(,[hw])?$/)[1];
var zh = number2zh(num); let zh = number2zh(num);
id = id.replace(/&\d+/g,''); id = id.replace(/&\d+/g,'');
if(_data[id]){ if(_data[id]){
var item = ''; let item = '';
var gen = getGenById(id); let gen = getGenById(id);
if(gen<3&&!id.match(/[hw],/)){ if(gen<3&&!id.match(/[hw],/)){
_data[id].forEach(function(name){ _data[id].forEach(function(name){
if(!item&&name.includes('几')){ if(!item&&name.includes('几')){
@ -150,22 +150,22 @@ export function getItemsById(id){
} }
// 缩小访问查找 // 缩小访问查找
if(!items.length){ if(!items.length){
var l = id.replace(/x/g,'l'); let l = id.replace(/x/g,'l');
var o = id.replace(/x/g,'o'); let o = id.replace(/x/g,'o');
items = items.concat(getData(o),getData(l)); items = items.concat(getData(o),getData(l));
} }
return items; return items;
}; };
// 通过ID获取关系链 // 通过ID获取关系链
var data = Object.assign({},_data,{ let data = Object.assign({},_data,{
'xb':['兄弟'], 'xb':['兄弟'],
'xs':['姐妹'] 'xs':['姐妹']
}); });
export function getChainById(id,sex){ export function getChainById(id,sex){
var arr = id.split(','); let arr = id.split(',');
var item = arr.map(function(sign){ let item = arr.map(function(sign){
var key = sign.replace(/&[ol\d]+/,''); let key = sign.replace(/&[ol\d]+/,'');
return data[key][0]; return data[key][0];
}).join('的'); }).join('的');
if(sex&&sex>-1&&data[sex+','+id]){ if(sex&&sex>-1&&data[sex+','+id]){
@ -180,24 +180,24 @@ export function getChainById(id,sex){
// 通过ID获取关系合称 // 通过ID获取关系合称
export function getPairsById(id1,id2){ export function getPairsById(id1,id2){
var result = []; let result = [];
var result_x = []; let result_x = [];
var result_r = []; let result_r = [];
id1 = id1.replace(/&\d+/,''); id1 = id1.replace(/&\d+/,'');
id2 = id2.replace(/&\d+/,''); id2 = id2.replace(/&\d+/,'');
var id1_x = id1.replace(/([ol])([bs])/,'x$2'); let id1_x = id1.replace(/([ol])([bs])/,'x$2');
var id2_x = id2.replace(/([ol])([bs])/,'x$2'); let id2_x = id2.replace(/([ol])([bs])/,'x$2');
var id1_r = id1.replace(/&[ol]/,''); let id1_r = id1.replace(/&[ol]/,'');
var id2_r = id2.replace(/&[ol]/,''); let id2_r = id2.replace(/&[ol]/,'');
for(var key in _pair){ for(let key in _pair){
var selectors = key.split('#'); let selectors = key.split('#');
if(selectors.length>1){ if(selectors.length>1){
var list1 = selector2id(selectors[0]); let list1 = selector2id(selectors[0]);
var list2 = selector2id(selectors[1]); let list2 = selector2id(selectors[1]);
var list1_r = list1.map(function(selector){ let list1_r = list1.map(function(selector){
return selector.replace(/&[ol\d]+/,'').replace(/([ol])([bs])/,'x$2'); return selector.replace(/&[ol\d]+/,'').replace(/([ol])([bs])/,'x$2');
}); });
var list2_r = list2.map(function(selector){ let list2_r = list2.map(function(selector){
return selector.replace(/&[ol\d]+/,'').replace(/([ol])([bs])/,'x$2'); return selector.replace(/&[ol\d]+/,'').replace(/([ol])([bs])/,'x$2');
}); });
if(list1.includes(id1)&&list2.includes(id2)||list1.includes(id2)&&list2.includes(id1)){ if(list1.includes(id1)&&list2.includes(id2)||list1.includes(id2)&&list2.includes(id1)){

View File

@ -10,17 +10,17 @@ import {
expandSelector expandSelector
} from './selector'; } from './selector';
var _map = Object.assign({},_multipie); let _map = Object.assign({},_multipie);
var getMap = function(prefixMap,branch){ let getMap = function(prefixMap,branch){
var map = {}; let map = {};
for(var key in branch){ for(let key in branch){
var tag = key.match(/\{.+?\}/)[0]; let tag = key.match(/\{.+?\}/)[0];
var nameList = branch[key]; let nameList = branch[key];
for(var k in prefixMap[tag]){ for(let k in prefixMap[tag]){
var prefixList = prefixMap[tag][k]; let prefixList = prefixMap[tag][k];
var newKey = key.replace(tag,k); let newKey = key.replace(tag,k);
var isFilter = ['h,h','w,w','w,h','h,w'].some(pair=>(newKey.includes(pair))); let isFilter = ['h,h','w,w','w,h','h,w'].some(pair=>(newKey.includes(pair)));
var newList = []; let newList = [];
if(!isFilter){ if(!isFilter){
prefixList.forEach(function(prefix){ prefixList.forEach(function(prefix){
nameList.forEach(function(name){ nameList.forEach(function(name){
@ -38,19 +38,19 @@ var getMap = function(prefixMap,branch){
return map; return map;
}; };
// 分支前缀处理 // 分支前缀处理
var prefixMap1 = {}; let prefixMap1 = {};
for(var key in _prefix){ for(let key in _prefix){
prefixMap1[key] = {}; prefixMap1[key] = {};
for(var selector in _prefix[key]){ for(let selector in _prefix[key]){
if(selector.indexOf(']')==-1){ if(selector.indexOf(']')==-1){
prefixMap1[key][selector] = _prefix[key][selector]; prefixMap1[key][selector] = _prefix[key][selector];
} }
} }
} }
var prefixMap2 = {}; let prefixMap2 = {};
for(var key in _prefix){ for(let key in _prefix){
prefixMap2[key] = {}; prefixMap2[key] = {};
for(var selector in _prefix[key]){ for(let selector in _prefix[key]){
if(selector.indexOf(']')>-1){ if(selector.indexOf(']')>-1){
expandSelector(selector).forEach(function(s){ expandSelector(selector).forEach(function(s){
prefixMap2[key][s] = _prefix[key][selector]; prefixMap2[key][s] = _prefix[key][selector];
@ -60,7 +60,7 @@ for(var key in _prefix){
} }
_map = Object.assign({},_map,getMap(prefixMap1,_branch),getMap(prefixMap2,_branch)); _map = Object.assign({},_map,getMap(prefixMap1,_branch),getMap(prefixMap2,_branch));
// 主要关系 // 主要关系
for(var key in _main){ for(let key in _main){
_map[key] = [].concat(_main[key],_map[key]||[]); _map[key] = [].concat(_main[key],_map[key]||[]);
} }
@ -68,26 +68,26 @@ for(var key in _main){
_map['o']=['passer-by.com','\u4f5c\u8005']; _map['o']=['passer-by.com','\u4f5c\u8005'];
// 配偶关系 // 配偶关系
var branch = { const branch = {
'w':['妻','内','岳','岳家','丈人'], 'w':['妻','内','岳','岳家','丈人'],
'h':['夫','外','公','婆家','婆婆'], 'h':['夫','外','公','婆家','婆婆'],
}; };
var nameSet = new Set(Object.values(_map).flat()); let nameSet = new Set(Object.values(_map).flat());
for(var key in _map){ for(let key in _map){
if(key.match(/^[fm]/)||key.match(/^[olx][bs]$|^[olx][bs],[^mf]/)){ // 只对长辈或者兄弟辈匹配 if(key.match(/^[fm]/)||key.match(/^[olx][bs]$|^[olx][bs],[^mf]/)){ // 只对长辈或者兄弟辈匹配
for(var k in branch){ for(let k in branch){
var newKey = k+','+key; let newKey = k+','+key;
if(_map[newKey.replace(/,[ol]([sb])(,[wh])?$/,',x$1$2').replace(/(,[sd])&[ol](,[wh])?$/,'$1$2')]){ // 不扩大解释年龄 if(_map[newKey.replace(/,[ol]([sb])(,[wh])?$/,',x$1$2').replace(/(,[sd])&[ol](,[wh])?$/,'$1$2')]){ // 不扩大解释年龄
continue; continue;
} }
if(!_map[newKey]){ if(!_map[newKey]){
_map[newKey] = []; _map[newKey] = [];
} }
var prefixList = branch[k]; let prefixList = branch[k];
var nameList = _map[key]; let nameList = _map[key];
prefixList.forEach(function(prefix){ prefixList.forEach(function(prefix){
nameList.forEach(function(name){ nameList.forEach(function(name){
var newName = prefix+name; let newName = prefix+name;
if(!nameSet.has(newName)){ // 配偶组合的称呼不得已原有称呼冲突(如:妻舅!=妻子的舅舅;外舅公!=老公的舅公) if(!nameSet.has(newName)){ // 配偶组合的称呼不得已原有称呼冲突(如:妻舅!=妻子的舅舅;外舅公!=老公的舅公)
_map[newKey].push(newName); _map[newKey].push(newName);
} }

View File

@ -3,8 +3,8 @@
*/ */
import _map from './map'; import _map from './map';
var _mode = {}; // 模式缓存 let _mode = {}; // 模式缓存
var _data = Object.assign({},_map); // 最终数据 let _data = Object.assign({},_map); // 最终数据
// 设置模式数据 // 设置模式数据
export function setModeData(sign,data){ export function setModeData(sign,data){
@ -15,7 +15,7 @@ export function setModeData(sign,data){
export function getModeData(sign){ export function getModeData(sign){
_data = Object.assign({},_map); _data = Object.assign({},_map);
if(sign&&_mode[sign]){ if(sign&&_mode[sign]){
for(var key in _mode[sign]){ for(let key in _mode[sign]){
_data[key] = [].concat(_mode[sign][key],_map[key]||[]); _data[key] = [].concat(_mode[sign][key],_map[key]||[]);
} }
} }

View File

@ -4,8 +4,8 @@
import _expression from './rule/expression'; import _expression from './rule/expression';
export function getOptions(text){ export function getOptions(text){
for(var item of _expression){ for(let item of _expression){
var match = text.match(item['exp']); let match = text.match(item['exp']);
if(match){ if(match){
return item['opt'](match); return item['opt'](match);
} }

View File

@ -10,11 +10,11 @@ import {reverseId,filterId,getGenById} from './id';
import _cache from './cache'; import _cache from './cache';
// 获得最简 // 获得最简
var getOptimal = function(options){ let getOptimal = function(options){
var {from,to,sex} = options; let {from,to,sex} = options;
var from_chain = options['from'].split(','); let from_chain = options['from'].split(',');
var to_chain = options['to'].split(','); let to_chain = options['to'].split(',');
for(var i=0;i<from_chain.length&&i<to_chain.length;i++){ for(let i=0;i<from_chain.length&&i<to_chain.length;i++){
if(from_chain[i]==to_chain[i]){ if(from_chain[i]==to_chain[i]){
from = from_chain.slice(i+1).join(','); from = from_chain.slice(i+1).join(',');
to = to_chain.slice(i+1).join(','); to = to_chain.slice(i+1).join(',');
@ -22,21 +22,21 @@ var getOptimal = function(options){
continue; continue;
}else{ }else{
if(getGenById(from_chain[i])==getGenById(to_chain[i])&&from_chain[i].match(/^[xol][bs]|^[sd]/)&&to_chain[i].match(/^[xol][bs]|^[sd]/)){ if(getGenById(from_chain[i])==getGenById(to_chain[i])&&from_chain[i].match(/^[xol][bs]|^[sd]/)&&to_chain[i].match(/^[xol][bs]|^[sd]/)){
var form_type = from_chain[i].replace(/&([ol\d]+)/,'').replace(/^[xol]([bs])/,'$1'); let form_type = from_chain[i].replace(/&([ol\d]+)/,'').replace(/^[xol]([bs])/,'$1');
var to_type = to_chain[i].replace(/&([ol\d]+)/,'').replace(/^[xol]([bs])/,'$1'); let to_type = to_chain[i].replace(/&([ol\d]+)/,'').replace(/^[xol]([bs])/,'$1');
if(form_type!=to_type){ if(form_type!=to_type){
break; break;
} }
var from_match = from_chain[i].match(/&([ol\d]+)/); let from_match = from_chain[i].match(/&([ol\d]+)/);
var to_match = to_chain[i].match(/&([ol\d]+)/); let to_match = to_chain[i].match(/&([ol\d]+)/);
if(!from_match){ if(!from_match){
from_match = from_chain[i].match(/([ol])[bs]/); from_match = from_chain[i].match(/([ol])[bs]/);
} }
if(!to_match){ if(!to_match){
to_match = to_chain[i].match(/([ol])[bs]/); to_match = to_chain[i].match(/([ol])[bs]/);
} }
var from_attr = from_match?from_match[1]:''; let from_attr = from_match?from_match[1]:'';
var to_attr = to_match?to_match[1]:''; let to_attr = to_match?to_match[1]:'';
if(from_attr&&to_attr){ if(from_attr&&to_attr){
if(!isNaN(from_attr)&&!isNaN(to_attr)){ if(!isNaN(from_attr)&&!isNaN(to_attr)){
if(+from_attr>+to_attr){ if(+from_attr>+to_attr){
@ -87,21 +87,21 @@ export function getSelectors(str){
str = str.replace(/(伯|叔)+(父|母)?家的?(哥|姐|弟|妹)+/,'堂$3').replace(/(伯|叔)+(父|母)?家的?/,'堂'); str = str.replace(/(伯|叔)+(父|母)?家的?(哥|姐|弟|妹)+/,'堂$3').replace(/(伯|叔)+(父|母)?家的?/,'堂');
str = str.replace(/姨+(爸|父|丈|妈|母)?家的?(哥|姐|弟|妹)+/,'姨$2').replace(/姨+(爸|父|丈|妈|母)?家的?/,'姨'); str = str.replace(/姨+(爸|父|丈|妈|母)?家的?(哥|姐|弟|妹)+/,'姨$2').replace(/姨+(爸|父|丈|妈|母)?家的?/,'姨');
var lists = str.split('的'); let lists = str.split('的');
var result = []; let result = [];
var isMatch = true; let isMatch = true;
while(lists.length){ while(lists.length){
var name = lists.shift(); //当前匹配词 let name = lists.shift(); //当前匹配词
var items = []; //当前匹配词可能性 let items = []; //当前匹配词可能性
var x_items = []; let x_items = [];
var r_items = []; let r_items = [];
var i_items = []; let i_items = [];
var keywords = [name]; let keywords = [name];
var getList = function(name){ let getList = function(name){
// 词义扩展 // 词义扩展
_replace.forEach(item => { _replace.forEach(item => {
item['arr'].forEach(word =>{ item['arr'].forEach(word =>{
var name1 = name.replace(item['exp'],word); let name1 = name.replace(item['exp'],word);
if(name1!=name){ if(name1!=name){
keywords.push(name1); keywords.push(name1);
getList(name1); getList(name1);
@ -109,9 +109,9 @@ export function getSelectors(str){
}); });
}); });
// 同义词替换 // 同义词替换
for(var word in _similar){ for(let word in _similar){
var name1 = name.replace(word,_similar[word]); let name1 = name.replace(word,_similar[word]);
var name2 = name.replace(_similar[word],word); let name2 = name.replace(_similar[word],word);
if(name1!=name){ if(name1!=name){
keywords.push(name1); keywords.push(name1);
} }
@ -123,29 +123,29 @@ export function getSelectors(str){
getList(name); getList(name);
// 通过关键词找关系 // 通过关键词找关系
keywords.forEach(function(name){ keywords.forEach(function(name){
var match = name.match(/^[大|小]|^[一|二|三|四|五|六|七|八|九|十]+/); let match = name.match(/^[大|小]|^[一|二|三|四|五|六|七|八|九|十]+/);
if(match){ if(match){
var x_name = name.replace(match[0],'几'); let x_name = name.replace(match[0],'几');
var r_name = name.replace(match[0],''); let r_name = name.replace(match[0],'');
var num = zh2number(match[0]); let num = zh2number(match[0]);
var x_ids = _cache[x_name]||[]; let x_ids = _cache[x_name]||[];
var r_ids = _cache[r_name]||[]; let r_ids = _cache[r_name]||[];
var i_ids = _cache[name]||[]; let i_ids = _cache[name]||[];
if(x_ids.length){ if(x_ids.length){
x_ids.forEach(function(i){ x_ids.forEach(function(i){
var r_i = i.replace(/(,[hw])$/,'&'+num+'$1').replace(/([^hw]+)$/,'$1&'+num); let r_i = i.replace(/(,[hw])$/,'&'+num+'$1').replace(/([^hw]+)$/,'$1&'+num);
x_items.push(r_i); x_items.push(r_i);
}); });
}else if(r_ids.length){ }else if(r_ids.length){
r_ids.forEach(function(i){ r_ids.forEach(function(i){
var r_i = i.replace(/(,[hw])$/,'&'+num+'$1').replace(/([^hw]+)$/,'$1&'+num); let r_i = i.replace(/(,[hw])$/,'&'+num+'$1').replace(/([^hw]+)$/,'$1&'+num);
if(!i.match(/^[mf,]+$/)&&!r_name.match(/^[从世]/)){ // 直系祖辈不参与排序 if(!i.match(/^[mf,]+$/)&&!r_name.match(/^[从世]/)){ // 直系祖辈不参与排序
r_items.push(r_i); r_items.push(r_i);
} }
}); });
}else{ }else{
i_ids.forEach(function(i){ i_ids.forEach(function(i){
var r_i = i.replace(/(,[hw])$/,'&'+num+'$1').replace(/([^hw]+)$/,'$1&'+num); let r_i = i.replace(/(,[hw])$/,'&'+num+'$1').replace(/([^hw]+)$/,'$1&'+num);
i_items.push(r_i); i_items.push(r_i);
}); });
} }
@ -167,7 +167,7 @@ export function getSelectors(str){
if(!items.length){ if(!items.length){
isMatch = false; isMatch = false;
} }
var res = []; let res = [];
if(!result.length){ if(!result.length){
result = ['']; result = [''];
} }
@ -183,10 +183,10 @@ export function getSelectors(str){
// 合并选择器,查找两个对象之间的关系 // 合并选择器,查找两个对象之间的关系
export function mergeSelector(param){ export function mergeSelector(param){
var {from:from_selector,to:to_selector,sex:my_sex} = param; let {from:from_selector,to:to_selector,sex:my_sex} = param;
if(my_sex<0){ if(my_sex<0){
var to_sex = -1; let to_sex = -1;
var from_sex = -1; let from_sex = -1;
if(from_selector.match(/^,[w1]/)){ if(from_selector.match(/^,[w1]/)){
from_sex = 1; from_sex = 1;
}else if(from_selector.match(/^,[h0]/)){ }else if(from_selector.match(/^,[h0]/)){
@ -207,16 +207,16 @@ export function mergeSelector(param){
return []; return [];
} }
} }
var from_ids = selector2id(param['from'],my_sex); let from_ids = selector2id(param['from'],my_sex);
var to_ids = selector2id(param['to'],my_sex); let to_ids = selector2id(param['to'],my_sex);
if(!from_ids.length||!to_ids.length){ if(!from_ids.length||!to_ids.length){
return []; return [];
} }
var result = []; let result = [];
from_ids.forEach(function(from){ from_ids.forEach(function(from){
to_ids.forEach(function(to){ to_ids.forEach(function(to){
var sex = my_sex; let sex = my_sex;
var selector = ','+to; let selector = ','+to;
if(selector.match(/,([fhs1](&[ol\d]+)?|[olx]b)(&[ol\d]+)?$/)){ if(selector.match(/,([fhs1](&[ol\d]+)?|[olx]b)(&[ol\d]+)?$/)){
sex = 1; sex = 1;
} }
@ -224,12 +224,12 @@ export function mergeSelector(param){
sex = 0; sex = 0;
} }
if(from&&to){ if(from&&to){
var isOptimal = param.optimal; let isOptimal = param.optimal;
if(from.match(/&\d+/)||to.match(/&\d+/)){ if(from.match(/&\d+/)||to.match(/&\d+/)){
isOptimal = true; isOptimal = true;
} }
if(isOptimal){ if(isOptimal){
var ops = getOptimal({ let ops = getOptimal({
'from':from, 'from':from,
'to':to, 'to':to,
'sex':my_sex, 'sex':my_sex,
@ -240,9 +240,9 @@ export function mergeSelector(param){
my_sex = ops['sex']; my_sex = ops['sex'];
} }
} }
var to_rids = to?reverseId(to,my_sex):['']; let to_rids = to?reverseId(to,my_sex):[''];
to_rids.forEach(function(to_r){ to_rids.forEach(function(to_r){
var selector = (to_r?','+to_r:'')+(from?','+from:''); let selector = (to_r?','+to_r:'')+(from?','+from:'');
result.push({ result.push({
'selector':selector, 'selector':selector,
'sex':sex 'sex':sex
@ -255,15 +255,15 @@ export function mergeSelector(param){
// 扩展选择器 // 扩展选择器
export function expandSelector(selector){ export function expandSelector(selector){
var result = []; let result = [];
var hash = {}; let hash = {};
var getSelector = function(selector){ let getSelector = function(selector){
var s=''; let s='';
if(!hash[selector]){ if(!hash[selector]){
hash[selector] = true; hash[selector] = true;
do{ do{
s = selector; s = selector;
for(var item of _filter){ for(let item of _filter){
// console.log('[filter]',item['exp'],selector); // console.log('[filter]',item['exp'],selector);
selector = selector.replace(item['exp'],item['str']); selector = selector.replace(item['exp'],item['str']);
if(selector.includes('#')){ if(selector.includes('#')){
@ -305,7 +305,7 @@ export function selector2id(selector,sex){
if(selector.match(/,[mwd0](&[ol\d]+)?,w|,[hfs1](&[ol\d]+)?,h/)){ //同志关系去除 if(selector.match(/,[mwd0](&[ol\d]+)?,w|,[hfs1](&[ol\d]+)?,h/)){ //同志关系去除
return []; return [];
} }
var result = expandSelector(selector).map(function(selector){ let result = expandSelector(selector).map(function(selector){
return selector.replace(/,[01]/,'').substr(1); //去前面逗号和性别信息 return selector.replace(/,[01]/,'').substr(1); //去前面逗号和性别信息
}); });
return filterId(result); return filterId(result);

View File

@ -2,16 +2,16 @@
* 数值转换 * 数值转换
*/ */
var textAttr = ['','一','二','三','四','五','六','七','八','九','十']; const textAttr = ['','一','二','三','四','五','六','七','八','九','十'];
// 中文数字转阿拉伯数字 // 中文数字转阿拉伯数字
export function zh2number(text){ export function zh2number(text){
var num = 0; let num = 0;
var map = {'大':1,'小':99}; const map = {'大':1,'小':99};
if(map[text]){ if(map[text]){
num = map[text]; num = map[text];
}else{ }else{
var [unit,dec=0] = text.replace(/^十/,'一十').split('十').map(word=> textAttr.indexOf(word)).reverse(); let [unit,dec=0] = text.replace(/^十/,'一十').split('十').map(word=> textAttr.indexOf(word)).reverse();
num = dec*10+unit; num = dec*10+unit;
} }
return num; return num;
@ -19,13 +19,13 @@ export function zh2number(text){
// 阿拉伯数字转中文数字 // 阿拉伯数字转中文数字
export function number2zh(num){ export function number2zh(num){
var text = ''; let text = '';
var map = {1:'大',99:'小'}; const map = {1:'大',99:'小'};
if(map[num]){ if(map[num]){
text = map[num]; text = map[num];
}else{ }else{
var dec = ~~(num/10); let dec = ~~(num/10);
var unit = num%10; let unit = num%10;
text = (dec?(textAttr[dec]+'十').replace('一十','十'):'')+textAttr[unit]; text = (dec?(textAttr[dec]+'十').replace('一十','十'):'')+textAttr[unit];
} }
return text; return text;