通过json树,我正在搜索属于客户的所有订阅。在鲁比,我可以说
customer.map(&:subscriptions).flatten
js中的map flatten有等价的函数吗?
最佳答案
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,您可能会发现Array很有趣-它将ruby标准库移植到javascript。所以你可以写
R(customers, true).map(({ subscriptions }) => subscriptions).flatten().toNative()
关于javascript - map 在JS中展平?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37372770/