【问题标题】:Map Flatten in JS?JS中的地图展平?
【发布时间】:2016-05-22 09:49:29
【问题描述】:

查看 json 树,我正在搜索属于客户的所有订阅。在 Ruby 中,我可以说

customer.map(&:subscriptions).flatten

JS中有没有等价的map flatten函数?

【问题讨论】:

  • 请添加一些数据。

标签: javascript ruby node.js dictionary


【解决方案1】:

你可以使用javascript Arraymapreduce方法:

customers = [{ subscriptions: [{ id: 1 }, { id: 2}]}, { subscriptions: [{ id: 5 }]}]

customers
  .map(function(it) { return it.subscriptions })
  .reduce(function(memo, it) { return memo.concat(it) }, [])

或者使用一些 ES6 语法糖:

customers = [{ subscriptions: [{ id: 1 }, { id: 2}]}, { subscriptions: [{ id: 5 }]}]

customers
  .map(({ subscriptions }) => subscriptions)
  .reduce((memo, it) => (memo.concat(it)), [])

同样来自 Ruby,您可能会发现 RubyJS 很有趣 - 它将 ruby​​ 标准库移植到 javascript。所以你可以写

R(customers, true).map(({ subscriptions }) => subscriptions).flatten().toNative()

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2021-06-01
  • 2015-04-18
  • 1970-01-01
  • 2021-02-01
  • 1970-01-01
  • 2020-07-06
  • 1970-01-01
  • 2014-10-26
相关资源
最近更新 更多