我有动态的字符串片段,例如 {"0s"、"1s"、"2s"、"3s"、"4s"}。
我有索引的动态切片,例如 {1, 2, 3}。
所以我只需要切片中索引为 1、2 和 3 的元素。
请注意,索引切片和数据切片都是动态的。
package main
import (
"fmt"
)
func main() {
indexes := []uint8{1, 2, 3} //dynamic slice. maybe different elements and count
data := []string{"0s", "1s", "2s", "3s", } //dynamic slice. maybe different elements and count
// I need convert data to {"1s", "2s", "3s"} using indexes (dynamic) slice
fmt.Println(data)
fmt.Println(indexes)
}
Run Code Online (Sandbox Code Playgroud)
小智 8
要使用从索引切片检索到的索引值创建新的数据切片,您必须迭代索引切片并将value索引切片作为index数据切片传递。以下是具有此逻辑的代码
package main
import (
"fmt"
)
func main() {
indexes := []uint8{1, 2, 3}
data := []string{"0s", "1s", "2s", "3s"}
var newData []string
fmt.Println(data)
fmt.Println(indexes)
for _, v2 := range indexes {
newData = append(newData, data[v2])
}
fmt.Println(newData)
}
Run Code Online (Sandbox Code Playgroud)
输出 :
[0s 1s 2s 3s]
[1 2 3]
[1s 2s 3s]
Run Code Online (Sandbox Code Playgroud)