轨道
/
Clojure
Clojure
/
练习
/
扁平化数组
扁平化数组

扁平化数组

中等

简介

一批应急物资已经送到,但有个问题。 为了防止损坏,物品(手电筒、急救包、毯子)都被装在箱子里,而其中一些箱子还嵌套在其他箱子里,足足有好几层!

为了应对紧急情况,所有东西都必须放在同一个箱子里,方便随时取用。你能把所有物资都取出来,装进一个箱子,让它们在最需要的时候随手就能拿到吗?

说明

接收一个任意深度的嵌套数组,返回一个完全扁平化后的数组。

注意,某些语言轨道可能会在输入数组中包含类似 null 的值,而这些值的表示方式因轨道而异。 这些值应当从扁平化后的数组中排除。

此外,输入数据的类型可能不同,所包含的类型也可能不同,具体取决于轨道。

详情请查阅测试套件。

示例

输入:[1, [2, 6, null], [[null, [4]], 5]]

输出:[1, 2, 6, 4, 5]

附录

Note

上面的说明与一个共享代码仓库保持同步,以确保所有语言轨道的一致性。 本附录提供额外的说明,或按需修改这些说明,以便更好地契合 Clojure 轨道的目标。

对于 Clojure 轨道中的这道练习,正如测试所表明的那样,你可以假设输入是向量的任意嵌套组合,输出是一个向量。 不过,这并不是严格的要求;你可以自由地假设输入是任意嵌套的顺序性事物(列表、向量等),输出是一个序列。


来源

面试题链接会在新窗口或新标签页中打开
通过 GitHub 编辑 链接将在新窗口或新标签页中打开
Clojure Exercism

准备好开始 扁平化数组 了吗?

注册 Exercism,借助 12 个概念105 个练习 和真人导师指导,学习并掌握 Clojure,全部免费。