javascript - 在Javascript中将值标准化为数组的最“诗意”方式
问题描述
编辑
很多人建议Array.isArray()...
,我不同意。这实际上是我远离的地方。一个简单的原因是它变得丑陋与更长的 var 名称。我们不妨发表评论。但我确信有更好的方法......
longerVariableName = [longerVariableName].flat() //normalizes
longerVariableName = Array.isArray(longerVariableName) ? longerVariableName : [longerVariableName]
原来的
不确定“诗意”是否合适;但我经常有类型的变量string | string[]
。我想将它们标准化[string]
以使其更易于使用。
我能想到的最短的方法是[var].flat()
即如果它不是一个数组,把它变成一个数组。如果它已经是一个数组,请不要理会它。
然而,上述方法的问题是我觉得它不太容易理解,尤其是对其他人而言。我可以发表评论,但这有点否定了简洁的意义。
有人有其他建议吗?
解决方案
编写清晰易读的代码,不要试图看起来棘手、聪明或富有诗意。
Array.isArray(arg) ? arg : [arg]
这非常容易阅读。它可以做得更短,但这会以牺牲可理解性为代价,因此在 IMO 中是不值得的。编写好的软件不是一场代码高尔夫比赛。
推荐阅读
- vscode-settings - VSCode:如何使用 ECMASCRIPT 2016 或 2017 或 2018 .... 验证我的 JavaScript?
- angular - ng-bootstrap datepicker 多选日期(分隔日期不在范围选择中)
- sql-server - Google Maps SQL Server:计算组内的异常地理数据
- elasticsearch - 在 ElasticSearch 7 的索引中插入文档时,动态映射不显示字段的数据类型
- xamarin.android - 适用于 Xamarin.Android 11.4.0.5 (d16-11/7776c9f) 的开源版本
- ios - 在使用 ATS 的第三方 iOS 应用程序上使用 BurpSuite
- python - python2到python3升级破了popen
- python - 使用 Plotly (Python) 保持注释相对于圆环图的相对位置不变
- ios14 - 关于在 iOS 14 上访问“缓存”的权限,但 iOS15 失败
- sql - 试图将每日信息连续转换为日期范围