2015-10-23 31 views
1

说我有以下对象:使用lodash转换对象的键和值的最优雅方式是什么?

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; 
}); 

回答

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 
+0

是啊,for循环一行是在这种情况下,很优雅。很好的答案,我想看看是否有内置的lodash方法,我还没有遇到过。谢谢! –

+1

我希望JS有类似Python的地图解析或至少一个forEach'构造这种情况。两者都会更高效,更优雅。但是,我们与我们一起工作 –

+0

Ecma6即将到来 - 在那里有很多好东西。 –

相关问题