Sorting 多维切片排序
希望根据int值将嵌套切片asc排序为desc,但该切片不受影响 下面是我尝试的简短片段Sorting 多维切片排序,sorting,go,Sorting,Go,希望根据int值将嵌套切片asc排序为desc,但该切片不受影响 下面是我尝试的简短片段 type Rooms struct { type string total string } CombinedRooms := make([][]Rooms) // sort by price for i, _ := range CombinedRooms { sort.Slice(CombinedRooms[i], func(j, k int) bool {
type Rooms struct {
type string
total string
}
CombinedRooms := make([][]Rooms)
// sort by price
for i, _ := range CombinedRooms {
sort.Slice(CombinedRooms[i], func(j, k int) bool {
netRateJ, _ := strconv.Atoi(CombinedRooms[i][j].Total)
netRateK, _ := strconv.Atoi(CombinedRooms[i][k].Total)
return netRateJ < netRateK
})
}
即使在执行排序功能后,切片合并的ooms仍不受影响
添加一个小示例:
我现在理解你的问题了,上面的解决方案试图通过比较每个内部切片元素来排序切片,以便在外部切片中排序内部切片在哪些内部切片元素应该排序。如果你想得到更好的结果,我相信你必须将切片展平并进行排序。你的示例正确地排序了内部切片,它打印的输出与内部切片的值相同。但是,如果您还希望根据内部切片的值对组合式oom进行排序,请添加以下代码:
sort.Slice(CombinedRooms, func(j, k int) bool {
netRateJ, _ := strconv.Atoi(CombinedRooms[j][0].Total)
netRateK, _ := strconv.Atoi(CombinedRooms[k][0].Total)
return netRateJ < netRateK
})
在此处查找工作代码我只想问我是否正确使用了排序切片功能如何根据[]房间的值对整个外部切片组合房间进行排序?切片中的最小值谢谢,但另一个答案在多种情况下都能正常工作
sort.Slice(CombinedRooms, func(j, k int) bool {
netRateJ, _ := strconv.Atoi(CombinedRooms[j][0].Total)
netRateK, _ := strconv.Atoi(CombinedRooms[k][0].Total)
return netRateJ < netRateK
})