2017-02-15 5 views
0

は、グループオブジェクトにそれかのうであり、このようUnderscore.jsですべての特性を組み合わせる:Underscore.jsグループ化オブジェクト

[ 
    { menu: "Setting", role: "admin" }, 
    { menu: "Setting", role: "user" }, 
    { menu: "Setting", role: "developer" }, 
    { menu: "Application", role: "admin" }, 
    { menu: "Application", role: "user" }, 
] 

をこのようなものに:私は

[ 
    { menu: "Setting", admin: "OK", user: "OK", developer: "OK"}, 
    { menu: "Application", admin: "OK", user: "OK"}, 
] 
+1

はい、可能です定期的な古いJSもあります。 – Adam

+0

はい、私は定期的なJSで試してきましたが、私は時間とメモリを取るループのために終わるので、私はunderscore.jsのような代替案を探してみたいです:) – stkertix

答えて

0
_.map(_.groupBy(arr, 'menu'), function(roles, menu) { 
    var entry = {menu: menu}; 
    _.each(roles, function(role) { entry[role.role] = "OK"; }); 
    return entry; 
}) 

後の出力が次のようになっているとします:

[ 
    { "menu": "Setting", "admin": "OK", "user": "OK", "developer": "OK" }, 
    { "menu": "Application", "admin": "OK", "user": "OK" } 
] 
+0

woaah、それはこのような単純なスクリプトで動作します。ご回答有難うございます。 :D – stkertix