当前位置: 首页 > Web前端 > HTML

春节走亲戚不知道怎么称呼?《亲情计算器》你值得拥有!

时间:2023-03-28 16:35:58 HTML

序大家好,我是林三鑫。用最通俗易懂的语言解释最难的知识点是我的座右铭。!!农历新年快到了!!!但是告诉你一个坏消息:过年,你去看亲戚,你知道亲戚怎么称呼吗?例如,你知道如何称呼你父亲的兄弟的兄弟的兄弟的儿子吗???哈哈哈哈,开玩笑的。但是,确实有很多人在走亲戚的时候不知道怎么称呼亲戚。这个时候体现了编程的魅力。编程的好习惯现在其实网上很多的做法都是这样的:title->直接关系->title,使用的数据结构类似如下:{"Dad":{"Dad":"爷爷”,“妈妈”:“奶奶”,“兄弟”:“叔叔”,“兄弟”:“叔叔”,“姐姐”:“阿姨”,“姐姐”:“阿姨”,“丈夫”:“未知”,"wife":"mother","son":{"older":"brother","middle":"me","younger":"brother"},"daughter":{"older":"sister"","middle":"I","younger":"sister"}}}缺点其实上面的方法有很多缺点:1.无法直接查询“阿姨的婆婆-”等复合关系law”2.Title无法逆向查询,例如:“cousin'smother”是“aunt”,“aunt”,还是“aunt”?3.数据结构臃肿,从上面的数据结构中可以看到很多“未知数”。..“爸爸的丈夫”应该叫什么????“未知”。..4、不能兼容多个称呼,比如“爸爸”也可以叫“爸爸”、“爸爸”5、不能推理关系链,比如:“阿姨”和我的关系链是什么?进阶练习语法先制定一套标准,推断亲属时必须用到含义1Male0Female&oOlder&lYoung#Separation[a\b]并行数据结构数据结构是这样的键值对:直接关系链->titleset例如'h':['老公','老公','先生','官','男','男','老公','老公','嫂子','夫内-law','Lover','wife']因为h代表husband,而husband的称呼有以下几种'h,f':['Grandfather','WengQin','Grandpa']因为h,f代表丈夫的父亲,有以下几种称呼'[h,f|h,m]':['公公婆婆']因为[h,f|h,m]表示老公公公婆婆,也就是公公婆婆'[f,xb,s&o|f,xb,s&l]':['cousins']因为[f,xb,s&o|f,xb,s&l]表示爸爸的哥哥的大儿子和爸爸的弟弟的小儿子,也就是表弟所以查询关系时,只有Just需要计算直接关系链,而不是对称谓进行字典查找。让我们举个例子。2.分解为“阿姨”和“婆婆”,关系链分别为m,xb,w和h,m,组合为m,xb,w,h,m3.合并后的关系链是多余的,w,h是老婆的老公,也就是自己,可以简化成m,xb,m,xb,m是弟弟的妈妈,也就是自己的妈妈,所以是最后简化为m,m4.简化关系链是一个直接的关系链,可以通过键值对的匹配查询来实现。1、键值对以JSON格式存储,键值对查询速度快。2.关系链使用正则表达式进行简化,一次简化两层关系,直到无法简化,但是简化过程需要考虑性别,例如:“儿子的母亲”,当你是男性时,它代表你的妻子,当你是女人的时候,代表你自己。这些都需要用正则表达式来匹配和替换,这就是你需要修饰符的原因。relationship.js使用npminstallrelationship.jsusingconstrelationship=require("relationship.js")//自定义模式安装//[关系链]f:father,m:mother,h:husband,w:wife,s:son,d:female,xb:brother,ob:brother,lb:brother,xs:sister,os:sister,ls:Sister//【修饰符】1:male,0:female,&o:older,&l:younger,#:分区,[a|b]:并列关系.setMode('北方',{'m,f':['爷爷'],'m,m':['奶奶'],'m,xb,s&o':['cousin'],'m,xb,s&l':['cousin'],})varoptions={text:'',//输入文本(中文称谓,以'of'分隔)target:'',//forobject:空代表自己sex:1,//自身性别:0女,1男type:'default',//转换类型:'default'计算标题,'chain'计算relationshipreverse:false,//调用方式:true,对方给我打电话,false,我给对方打电话奶奶的弟弟?console.log(relationship({text:'妈妈的妈妈的弟弟'}))//['Granduncle']//例如:七叔应该怎么称呼我?console.log(relationship({text:'七叔',reverse:true,sex:1}))//['侄子']//例如:我和叔叔是什么关系?console.log(relationship({text:'uncle',sex:0,type:'chain'}))//['爸爸的妈妈的弟弟','妈妈的妈妈的弟弟','老爸爸的妈妈的弟弟']//如:阿姨怎么称呼奶奶?console.log(relationship({text:'Grandmother',target:'Aunt',sex:1}))//['Grandmother']亲属关系计算器-简单版带input,select,button可以轻松实现亲属关系计算器-简单版本//模板
标题关系正向反向
计算{{结果}}