你好,我有一个对象数组,看起来像:
[
{
"id": "ae588a6b-4540-5714-bfe2-a5c2a65f547b",
"name": "Peter casa",
"skills": [
"javascript",
"es6",
"nodejs"
]
},
{
"id": "ae588a6b-4540-5714-bfe2-a5c2a65f547a",
"name": "Peter Coder",
"skills": [
"javascript",
"es6",
"nodejs",
"express"
]
}
]
我试着从技能上找到最好的匹配,我用的是lodash,我的想法是:
传递“技能”:[“JavaScript”,“ES6”,“NodeJS”,“Express”]得到“Peter Coder”而不是“Peter Casa”,因为第一个匹配给定数组中的所有技能,是否有任何lodash方法来执行此操作?
编辑:
在这个特定的例子中,函数需要获得一个更适合的候选项,例如,如果我传递了技能:“技能”:[“JavaScript”,“ES6”,“NodeJS”],即使它与第一个完全匹配,我也需要选择第二个,因为它与技能相匹配,并且有更多的技能,所以是一个更好的匹配项
lodash有一个方法调用conterction
https://lodash.com/docs/#conterctions
您可以传递技能数组,并将其与每个开发人员的技能相交。=>;获取该交叉点的长度作为得分,返回得分最高的一个。