레퍼런스를 유지한 채로, 기존 배열 뒤에 뭔가를 추가할 때 … (전개연산자)를 이용한 방법 유용하군요.
var a = [3,4,5];
var b = a;
var c = [6,7,8];
a.push( ...c );
console.log(b);
[ 3, 4, 5, 6, 7, 8 ]
ES6 (5?) 이전엔 이런것을 수행하기 위한 핵이 뭐가 있었죠…?
레퍼런스를 유지한 채로, 기존 배열 뒤에 뭔가를 추가할 때 … (전개연산자)를 이용한 방법 유용하군요.
var a = [3,4,5];
var b = a;
var c = [6,7,8];
a.push( ...c );
console.log(b);
[ 3, 4, 5, 6, 7, 8 ]
ES6 (5?) 이전엔 이런것을 수행하기 위한 핵이 뭐가 있었죠…?
써놓고, 바로 생각해보니
Array.prototype.push.apply( a, c )
였었다는 생각이… ㅎ.
가장 많이 사용하는 패턴은 새 객체를 만들면서 값을 바꾸거나, object를 merge할 때죠.
const a = { test: 'value', move: 'fast' };
const b = { ...a, move: 'slow' };
console.log(a, b);
{test: "value", move: "fast"} {test: "value", move: "slow"}
a = a.concat(b);
a = a.concat( c ) 는 b 와 더이상 상관이 없어지므로, console.log(b) 의 값은 변하지 않은채 원래의 a 가 나오므로 원하는것이 아니옵니다.
이제야 원하시는게 뭔지 이해했습니다.
제가 너무 설렁설렁 봤나봐요