这是由于JS环境返回的返回值字符串表示形式的{{cljs.repl}}读取-打印处理造成的。截至版本2371,相关代码片段位于此处
https://github.com/clojure/clojurescript/blob/r2371/src/clj/cljs/repl.clj#L156
一个更大的片段来演示这一点
ClojureScript:cljs.user> (array-map 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18) {1 2, 3 4, 5 6, 7 8, 9 10, 11 12, 13 14, 15 16, 17 18} ClojureScript:cljs.user> (array-map 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21) {7 8, 1 2, 15 16, 13 14, 17 18, 3 4, 11 12, 9 10, 5 6} ClojureScript:cljs.user> (seq (array-map 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18)) ([1 2] [3 4] [5 6] [7 8] [9 10] [11 12] [13 14] [15 16] [17 18]) ClojureScript:cljs.user> (hash-map 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18) {7 8, 1 2, 15 16, 13 14, 17 18, 3 4, 11 12, 9 10, 5 6}
此问题似乎是最可能导致(链接:http://stackoverflow.com/questions/26349324/clojurescript-array-map-order 文本:StackOverflow问题)中描述的问题的原因。最好以“预期”的方式打印有序集合,以免用户产生混淆。