提问者:小点点

按数组键匹配对象-Lodash


你好,我有一个对象数组,看起来像:

[
    {
        "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”],即使它与第一个完全匹配,我也需要选择第二个,因为它与技能相匹配,并且有更多的技能,所以是一个更好的匹配项


共1个答案

匿名用户

lodash有一个方法调用conterctionhttps://lodash.com/docs/#conterctions

您可以传递技能数组,并将其与每个开发人员的技能相交。=>;获取该交叉点的长度作为得分,返回得分最高的一个。