的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方法将新元素添加到调用它的变量中[重复]

无法使用猫鼬推送到阵列

为JSON对象中的每个数组添加一个(子)按钮元素到div,并为数组中的每个对象添加子按钮(到数组按钮)

coffeescript:遍历数组中的对象