Hallo, ich habe folgendes:merge und hinzufügen, JavaScript-Objekte
> 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' } ]
>
Dies ist falsch, wie ich zwei { sku: 'EP01', qty: 100, cntry: 'DE' }
wo, wie Ich mag würde eine fusionierte Objekt wie { sku: 'EP01', total: 110, qty-gb: 10, qty-de: 100 }
Meine Liste über bekommen hat 8.000 Einträge und in einigen Fällen kann der eine vorhanden sein, aber nicht der andere.
Was ist ein effizienter Weg, dies auf node.js mit lodash zu erreichen?
habe ich versucht, dies:
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
aber falscher
Welche lodash Combos hast du probiert? – Clarkie