需要做的到水木清华这样的:
for word, index in text_array
React.DOM.span
key: index,
word
' '
但是,在这种情况下的CoffeeScript仅推最后一个对象“”到结果数组,但我需要导致阵列看起来像[对象,“”,对象,”“]
什么你想在这里做的基本上是“平面地图”;概念是这样的:
你可以做一步一步的是这样的:
results = []
source.forEach (word, idx) ->
results.push React.DOM({key: index}, word), ''
你也可以使用Array#flatten从下划线,它结合了嵌套数组的true
说法的意思是“扁平化只是一个水平”,这是没有必要在这里,但它更具体传达的意图。
_ = require 'underscore'
results = _.flatten (source.map (word, idx) ->
[React.DOM.span({key: index}, word), '' ]
), true
无论是一个可以改写使用列表理解,虽然只是第二次利用返回值:
results =[]
for word, index in source
results.push React.DOM.span({key: index}, word), ''
results = _.flatten (for word, index in source
[React.DOM.span({key: index}, word), '' ]
), true
你也可以使用Array#reduce,虽然我不认为CoffeeScript的列表解析支持这一点。
results = source.reduce (memo, word, index) ->
memo.push React.DOM({key: index, word), ''
memo
, []