登录
首页 >  Golang >  Go问答

使用"syscall/js"传递字符串数组到 JavaScript 的方法

来源:stackoverflow

时间:2024-03-01 13:21:25 367浏览 收藏

最近发现不少小伙伴都对Golang很感兴趣,所以今天继续给大家介绍Golang相关的知识,本文《使用"syscall/js"传递字符串数组到 JavaScript 的方法》主要内容涉及到等等知识点,希望能帮到你!当然如果阅读本文时存在不同想法,可以在评论中表达,但是请勿使用过激的措辞~

问题内容

有这个go函数

func wasmcount(this js.value, args []js.value) interface {} {
 const firstparam = args[0].arrayofstring() // <-- i want to achieve this
 return firstparam.length
}

我会像这样从js调用它

WasmCount(["a", "b"]) // it should return 2

我可以传递 stringint 但没有找到传递 array of 的方法


正确答案


go 代码负责从 js.value 中提取切片。请参阅下面的演示:

func WasmCount(this js.Value, args []js.Value) any {
    if len(args) < 1 {
        fmt.Println("invalid number of args")
        return nil
    }

    arg := args[0]
    if arg.Type() != js.TypeObject {
        fmt.Println("the first argument should be an array")
        return nil
    }

    firstParam := make([]string, arg.Length())
    for i := 0; i < len(firstParam); i++ {
        item := arg.Index(i)
        if item.Type() != js.TypeString {
            fmt.Printf("the item at index %d should be a string\n", i)
            return nil
        }
        firstParam[i] = item.String()
    }

    return len(firstParam)
}

这个演示是根据这个答案修改的:https://stackoverflow.com/a/76082718/1369400

好了,本文到此结束,带大家了解了《使用"syscall/js"传递字符串数组到 JavaScript 的方法》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>