2015-10-23 35 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即將到來 - 在那裏有很多好東西。 –

相關問題