2017-12-12 3 views
0

Underscore.jsは、以下を行う機能indexBy有する:、Scalaで `indexBy`を書くにはどうすればいいですか?

リスト、およびリスト内の各 要素(またはプロパティ名)のキーを返すiteratee機能を考慮すると、オブジェクトを返します各項目のインデックスは です。 groupByと似ていますが、あなたのキーを知っている時のために はユニークです。

var stooges = [{name: 'moe', age: 40}, {name: 'larry', age: 50}, {name: 'curly', age: 60}]; 
_.indexBy(stooges, 'age'); 
=> { 
    "40": {name: 'moe', age: 40}, 
    "50": {name: 'larry', age: 50}, 
    "60": {name: 'curly', age: 60} 
} 

Scalaでこれを書くための最良の方法は何ですか?

答えて

1
final case class Stooge(name: String, age: Int) 

val stooges = Seq(Stooge("moe", 40), Stooge("larry", 50)) 

val result = stooges.map(s => s.age -> s).toMap 

println(result) 
// Map(40 -> Stooge(moe,40), 50 -> Stooge(larry,50)) 
関連する問題