Avoiding Mutation

JSで元のオブジェクトに変更を加えずに処理したい時

配列

// 元の配列に変更を加えず、一段階の深さのコピーを返す
var shallowCopy = fruits.slice();

// 連結
var array1 = ['a', 'b', 'c'];
var array2 = ['d', 'e', 'f'];
console.log(array1.concat(array2));

// mapping data to the other data
const numbers = [1, 2, 3];
const doubled = numbers.map(x => x * 2);

オブジェクト

// データを一部変更
var player = {score: 1, name: 'Jeff'};
var newPlayer = Object.assign({}, player, {score: 2});