title: JavaScript head and tail on array without mutation
body: <p>I found about JavaScript array operations Unshift, shift, push, pop</p>
  
  <p>However all these operations mutate the array.</p>
  
  <p>Is there a way I could use these functions without causing mutation on the original data? </p>
  
  <p>Somehow I feel that reading the data should not cause mutation.</p>