有没有办法在一行coffeescript中使用列表理解来做到这一点?
len = 70
msgsFormatted = []
for msg in messages
if msg.length == len
then msgsFormatted.push(msg + ' ...')
else msgsFormatted.push msg
我正在尝试这个,但它不会传播
msgsFormatted = (msg + ' ...' if msg.length == len else msg for msg in messages)
我也试过了,但显然没有编译到正确的javascript
msgsFormatted = (if msg.length == len then msg + ' ...' else msg for msg in messages)
答案 0 :(得分:1)
列表理解并不提供其他内容,但您可以在其中使用条件语句:
len = 2
messages = [1, 2, 3, 4, '22', 5]
alert ((if msg.length == len then msg + ' ...' else msg) for msg in messages)
答案 1 :(得分:0)
使用“映射阵列”,如
messages = [ "Peter", "Paul", "Mary" ]
len = 5
msgsFormatted = []
msgsFormatted = messages.map (msg) -> (if msg.length == len then msg + ' ...' else msg)
console.log msgsFormatted