这是一个非常简单的代码,也可以在Scala工作表中执行。这是一种减少计算列表中数字频率的方法。
我在启动groupBy和map操作之前对列表进行排序。即使这样,list.groupBy.map操作也会生成一个未排序的地图。既不是数字也不是频率
event.preventDefault();
var fdata = new FormData()
if($("#upload_logo")[0].files.length>0)
fdata.append("upload_logo",$("#upload_logo")[0].files[0])
$.ajax({
type: 'POST',
url: 'step-two.php',
data:{fdata},
答案 0 :(得分:1)
groupBy不保证任何订单
答案 1 :(得分:0)
val list = List(1,2,4,2,4,7,3,2,4).sorted
val freqMap = list.groupBy(x => x)
输出:
freqMap: scala.collection.immutable.Map[Int,List[Int]] = Map(1 -> List(1), 2 -> List(2, 2, 2), 7 -> List(7), 3 -> List(3), 4 -> List(4, 4, 4))
groupBy获取列表并对元素进行分组。它构建了一个Map中的
以下是Scala文档中的官方方法定义:
def groupBy [K] (f: (A) ⇒ K): Map[K, Traversable[A]]
如果您想订购分组结果,可以使用ListMap:
scala> val freqMap = list.groupBy(x => x)
freqMap: scala.collection.immutable.Map[Int,List[Int]] = Map(1 -> List(1), 2 -> List(2, 2, 2), 7 -> List(7), 3 -> List(3), 4 -> List(4, 4, 4))
scala> import scala.collection.immutable.ListMap
import scala.collection.immutable.ListMap
scala> ListMap(freqMap.toSeq.sortBy(_._1):_*)
res0: scala.collection.immutable.ListMap[Int,List[Int]] = Map(1 -> List(1), 2 -> List(2, 2, 2), 3 -> List(3), 4 -> List(4, 4, 4), 7 -> List(7))