【发布时间】:2016-05-22 09:49:29
【问题描述】:
查看 json 树,我正在搜索属于客户的所有订阅。在 Ruby 中,我可以说
customer.map(&:subscriptions).flatten
JS中有没有等价的map flatten函数?
【问题讨论】:
-
请添加一些数据。
标签: javascript ruby node.js dictionary
查看 json 树,我正在搜索属于客户的所有订阅。在 Ruby 中,我可以说
customer.map(&:subscriptions).flatten
JS中有没有等价的map flatten函数?
【问题讨论】:
标签: javascript ruby node.js dictionary
你可以使用javascript Array的map和reduce方法:
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()
【讨论】:
flatMap