deepAssign doesnt extend arrays
iamstarkov opened this issue · 3 comments
iamstarkov commented
> deepAssign({ list: ['asd']}, { list: [1, 2,3] });
{ list: [ 1, 2, 3 ] }
iamstarkov commented
this should work
var _ = require('lodash');
var mergeArrays = function(a, b) { if (_.isArray(a)) { return a.concat(b); }}
_.merge({ list: ['asd']}, { list: [1, 2,3] }, mergeArrays)
iamstarkov commented
this also should work:
var R = require('ramda');
var mergeConcat = (x, y) =>
R.reduce(
(acc, kv) =>
R.over(
R.lensProp(kv[0]),
R.pipe(R.defaultTo([]),
R.concat(R.__, kv[1])),
acc
),
x,
R.toPairs(y)
);
> mergeConcat({ list: ['asd']}, { list: [1, 2,3] });
iamstarkov commented
implemented a module here https://github.com/iamstarkov/merge-and-concat