的CoffeeScript添加多个对象以产生阵列中的每个迭代
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了的CoffeeScript添加多个对象以产生阵列中的每个迭代相关的知识,希望对你有一定的参考价值。
需要做的到水木清华这样的:
for word, index in text_array
React.DOM.span
key: index,
word
' '
但是,在这种情况下的CoffeeScript仅推最后一个对象“”到结果数组,但我需要导致阵列看起来像[对象,“”,对象,”“]
答案
什么你想在这里做的基本上是“平面地图”;概念是这样的:
- 给定阵列的结果
- 遍历源阵列
- 每次迭代中,推N个值到结果阵列
你可以做一步一步的是这样的:
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
, []
以上是关于的CoffeeScript添加多个对象以产生阵列中的每个迭代的主要内容,如果未能解决你的问题,请参考以下文章
CoffeeScript 每次迭代都会向结果数组添加几个对象
Javascript/Coffeescript 在值相同时对多个键上的对象数组进行排序
防止coffeescript方法将新元素添加到调用它的变量中[重复]