こんにちは、私は、次のしているオブジェクトを追加:マージと量はJavascriptを
> var gb = [{"sku": "EP01", "qty": 10, "cntry": "GB"}, {"sku": "EP02", "qty": 5, "cntry": "GB"}, {"sku": "EP03", "qty": 15, "cntry": "GB"}];
>
> var de = [{"sku": "EP01", "qty": 100, "cntry": "DE"}, {"sku": "EP02", "qty": 25, "cntry": "DE"}];
> var obj1 = gb.concat(de);
[ { sku: 'EP01', qty: 100, cntry: 'DE' },
{ sku: 'EP02', qty: 25, cntry: 'DE' },
{ sku: 'EP03', qty: 15, cntry: 'GB' },
{ sku: 'EP01', qty: 100, cntry: 'DE' },
{ sku: 'EP02', qty: 25, cntry: 'DE' } ]
>
これは私が得るとして間違っている2 { sku: 'EP01', qty: 100, cntry: 'DE' }
私は1つのマージされたオブジェクト{ sku: 'EP01', total: 110, qty-gb: 10, qty-de: 100 }
のように取得したいと私のリストを約持っていますいくつかのケースでは1つに存在するかもしれないが、もう1つは存在しないかもしれない。
lodashでnode.jsでこれを達成する効率的な方法は何ですか?
私はこの試みた:
allStockAPI = exports.allStockAPI = (req) ->
Promise.props
stocksAPI: stockAPI(req)
germanStocks: germanStocks.getStocks(config.germanStocksUrl)
.then (result) ->
newDe = result.germanStocks.map (i) ->
return Object.values(i)
result.stocksAPI.forEach (i) ->
i.pop()
rows = result.stocksAPI.concat newDe
#console.log rows
skus = rows.map (row) ->
{
sku: row[0],
val: row
}
groupedRows = _(skus).groupBy('sku').value()
rows = _(Object.keys(groupedRows)).uniq().value().map (sku) ->
rows = groupedRows[sku].map (row) ->
row.val
rows = rows.map (row) ->
if row[row.length - 2]
row[row.length - 2] = row[row.length - 1] + ' office : ' + row[row.length - 2]
if row[row.length - 2] == null
row[row.length - 2] = ''
row
stock = rows.reduce (prev, cur) ->
prev[prev.length - 1] = 'UK/DE'
if (prev[prev.length - 2])
prev[prev.length - 2] = prev[prev.length - 2] + '<br>' + cur[prev.length - 2]
else
prev[prev.length - 2] = cur[prev.length - 2]
prev
stock
rows
をしかし
試したことがあるロダシコンボは何ですか? – Clarkie