【问题标题】:What is the most elegant way to transform both keys and values of an object using lodash?使用 lodash 转换对象的键和值的最优雅方法是什么?
【发布时间】:2015-10-23 23:34:50
【问题描述】:

假设我有以下对象:

 var Models = { User: ... 
    { collection: 
         { name: 'users' }
     } ...
    , Post: { ...
    collection: 
     { name: 'posts'
            }
        }
    }

我想把它变成:

 {'users': 'User', 'posts': 'Post'}

有没有人比这种方法更优雅(lodash):

    collectionNames = _.mapValues(_.mapKeys(Models, function(model) {
    return model.collection.name;
}), function(model) {
    return model.modelName;
});

【问题讨论】:

    标签: javascript object lodash


    【解决方案1】:

    基本循环有什么问题,更容易理解并且没有依赖关系?

    node.js

    var Models = { User: {collection: { name: 'users' }}, Post: { collection: {name:'posts' }}
    var res = {}
    for (var key in Models) res[Models[key].collection.name] = key
    

    【讨论】:

    • 是的,单行 for 循环在这种情况下非常优雅。很好的答案,我想看看是否有一个我还没有遇到过的内置 lodash 方法。谢谢!
    • 我希望 JS 有类似 python 的地图理解,或者至少有一个 forEach 用于这种情况的构造。两者都会更高效,更优雅。但好吧,我们用我们得到的东西来工作
    • 到那时我可能会完全使用dart :)
    猜你喜欢
    • 1970-01-01
    • 2020-04-22
    • 2016-05-12
    • 2023-04-02
    • 2015-01-09
    • 2013-09-29
    • 1970-01-01
    • 2020-11-18
    • 2019-11-22
    相关资源
    最近更新 更多