JSFiddle - React, Tailwind, and code Playground
JavaScript
console.group('clone');
a=[{x:1,y:2},{x:2,y:4}];
b = _.clone(a);
console.log( 'diff', _.difference(b,a) ); // no difference, call by reference
b[0].x=5;
console.log( 'a[0]', a[0] ); // a[0] changes with b[0]
console.log( 'b[0]', b[0] );
console.log( 'diff', _.difference(b,a) ); // no difference
console.groupEnd('clone');
console.group('map');
a=[{x:1,y:2},{x:2,y:4}];
b = _.map( a, _.clone ); // http://stackoverflow.com/questions/21003059/how-do-you-clone-an-array-of-objects-using-underscore
console.log( 'diff', _.difference(b,a) ); // all different
b[0].x=5;
console.log( 'a[0]', a[0] ); // a[0] does not change with b[0]
console.log( 'b[0]', b[0] );
console.log( 'diff', _.difference(b,a) ); // all different
console.groupEnd('map');