Sorting 多维切片排序

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 {

希望根据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 {
        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
    })