首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用lodash的_.mergewith和customizer函数

如何使用lodash的_.mergewith和customizer函数
EN

Stack Overflow用户
提问于 2021-04-13 17:14:05
回答 1查看 76关注 0票数 1

您好,我需要合并两个对象与合并在lodash…

代码语言:javascript
复制
object1 = {
    "a": {
        "name": "masoud", "age": 3, "user": "masmas"
    },
    "b" : {
        "name": "milad", "age": 13, "user": "milmil"
    }
}

object2 = {
    "b" : {
        "pythonSkill" : 18 , "HTMLSkill" : 15 
    } , 
    "c" : {
        "phpSkill" : 15 , "CSSSkill" : 16 
    },
    "a" : {
        "javaSkill" : 20 , "reactSkil" : 10 
    } , 
}

最后组合对象样本:

代码语言:javascript
复制
final = {
    "a": {
        "name": "masoud", "age": 3, "user": "masmas", "persianLanguage": 20, "englishLanguage": 10
    },
    "b" : {
        "name": "milad", "age": 13, "user": "milmil" , "pythonSkill": 18, "HTMLSkill": 15
    }
}

每个对象都没有特定数量的内部对象,并且每次都可能不同。有一次Object1有a,b,c,....,m& other time Object1有m,n,o,c,...

Object2类似的object1 ...

不同场景1-如果Object1有"a“,object2有"a”,finally对象必须有"a“..2-如果Object1没有"a“,object2有"a”,则finally对象没有"a“..3-如果Object1有"a“而object2没有"a”,则finally对象没有"a“。

EN

回答 1

Stack Overflow用户

发布于 2021-04-13 18:32:03

我不知道如何使用_.mergeWith,这对我来说似乎相当困难,但您可以使用_.mapValues_.pickBy相对容易地实现所需的结果

代码语言:javascript
复制
object1 = {
    "a": {
        "name": "masoud", "age": 3, "user": "masmas"
    },
    "b" : {
        "name": "milad", "age": 13, "user": "milmil"
    },
    "d" : {
        "name": "nassim", "age": 32, "user": "nm1"
    }
}

object2 = {
    "b" : {
        "pythonSkill" : 18 , "HTMLSkill" : 15 
    } , 
    "c" : {
        "phpSkill" : 15 , "CSSSkill" : 16 
    },
    "a" : {
        "javaSkill" : 20 , "reactSkil" : 10 
    } , 
}

let final = _.mapValues(_.pickBy(object1, (v,k) => object2[k]), (v, k, o) => { 
    return { ...v, ...object2[k] }
});
console.log(final)
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.20/lodash.min.js" integrity="sha512-90vH1Z83AJY9DmlWa8WkjkV79yfS2n2Oxhsi2dZbIv0nC4E6m5AbH8Nh156kkM7JePmqD6tcZsfad1ueoaovww==" crossorigin="anonymous"></script>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67071988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档