如何从 ClojureScript 中的 Uint8Array 获取数据?

How do I get data out of a Uint8Array in ClojureScript?

我在 ClojureScript 站点中从 midiAccess 对象获取 MIDI 消息作为 Uint8Array,但我似乎无法将其转换为我可以从中获取值的东西。 (js/console.log message) 在浏览器控制台中生成 Uint8Array(3) [128, 65, 0]。 实际上,消息上的 'first' 获得了第一个值,但随后 'second' 没有。使用 js->clj 似乎无法将其转换成任何可用的东西。我如何从中提取数据?我尝试了 js->clj,但似乎还是一样。

这里有一些例子:

(let [ui8a (Uint8Array.from [0 1 2 3 4 5])]

然后

ui8a              => #object[Uint8Array 0,1,2,3,4,5]

(.-length ui8a)   => 6
(first ui8a)      => 0
(second ui8a)     => 1
(aget ui8a 3)     => 3

(into [] ui8a)    => [0 1 2 3 4 5]  ; either one works
(vec ui8a)        => [0 1 2 3 4 5]

您可能会发现此 list of documentation sources 有帮助。尤其要确保每天学习 Clojure CheatSheet!