如何从 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!
我在 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!