如何以数组形式访问 JavaScript 对象

How to access a JavaScript object as an array

在 GopherJS 中,对象的成员本身就是对象(就像 js 在后台处理事情一样,ttbomk)。

所以当访问一个成员时,会返回一个 *js.Object:

func makeRID(o *js.Object) string {
  // access the array of numbers in member RID:
  arr := o.Get("RID")
  // arr is now a *js.Object - not an []interface{} - which is what I actually need (and what the contents of the property RID really are...
}

传入的 o 是从服务器的 JSON 响应中提取的 js 对象。它的成员 "RID" 是字节值数组 - 例如{ RID: [ 136, 210, 92, 97, 152, 26, 17, 233, 147, 147, 8, 0, 39, 223, 163, 7 ], ...

我没有谷歌搜索,也没有在 gopherjs 的 js 文档中看到任何关于如何从 *js.Object 到相当于 js 数组的 gopherjs 的任何明确指示,即 []interface{}

想法?

*js.Object -> []interface{}

Woo-hoo - 知道了! 感谢您的建议:)

func makeRID(o *js.Object) string {
  // access the array of numbers in member RID:
  jsRID := o.Get("RID")
  // I know that the source object's RID member is an Array, so we can access it in gopherjs as:
  jsArray := jsRID.Interface().([]interface{})
  // ... profit!
}