首页 > 解决方案 > 在Javascript中将值标准化为数组的最“诗意”方式

问题描述

编辑

很多人建议Array.isArray()...,我不同意。这实际上是我远离的地方。一个简单的原因是它变得丑陋与更长的 var 名称。我们不妨发表评论。但我确信有更好的方法......

longerVariableName = [longerVariableName].flat() //normalizes

longerVariableName = Array.isArray(longerVariableName) ? longerVariableName : [longerVariableName]

原来的

不确定“诗意”是否合适;但我经常有类型的变量string | string[]。我想将它们标准化[string]以使其更易于使用。

我能想到的最短的方法是[var].flat()

即如果它不是一个数组,把它变成一个数组。如果它已经是一个数组,请不要理会它。

然而,上述方法的问题是我觉得它不太容易理解,尤其是对其他人而言。我可以发表评论,但这有点否定了简洁的意义。

有人有其他建议吗?

标签: javascript

解决方案


编写清晰易读的代码,不要试图看起来棘手、聪明或富有诗意。

Array.isArray(arg) ? arg : [arg]

这非常容易阅读。它可以做得更短,但这会以牺牲可理解性为代价,因此在 IMO 中是不值得的。编写好的软件不是一场代码高尔夫比赛。


推荐阅读