【发布时间】:2013-10-08 18:00:28
【问题描述】:
我发现Array.prototype.join() 方法在从数组构造字符串时非常有用,比如
"one two three".split(' ').join(', ');
但很多时候我想生成这样的字符串:
"one, two and three"
我使用的方法是这样的:
var parts = "one two three".split(' ');
parts.slice(0, parts.length-1).join(', ') + ' and ' + parts.slice(-1)
这会生成我想要的,但是我应该将其放入单独的函数中。
我喜欢单行,并且相信在 JS 中应该有更优雅的单行来完成这项任务。谁能给我一份?
编辑
请不要评论说编写不可读的代码是一种不好的做法。我要一个! :) 我从一个班轮中学到了很多关于语言结构的知识,因此有一种情况我看到了一种可能性。无意冒犯。
最终编辑 我很欣赏 Pavlo 的回答,因为它确实显示了一个班轮可以多么容易地成为一个漂亮的可读代码。因为我要求一个班轮,所以根据我的问题 h2ooooooo 获得最高分。
【问题讨论】:
-
只有清晰简洁的衬里才是好的。我讨厌那些试图太聪明且难以阅读的代码。代码应该易于阅读以帮助维护。
-
你可能会得到一个单行,但它会非常不可读且难以维护。
-
我喜欢一个班轮,因为他们经常表现出高级的语言用法,我喜欢学习新事物。这不是我想在整个代码中放置一个衬里的情况。
-
这个问题似乎是题外话,因为它是关于代码高尔夫
-
@DanielPryden 这不是问题,直到它成为问题。我们不知道范围,也许这是一个小项目。无需将事情过度复杂化。
标签: javascript arrays string