I personally think [Array.from](https://developer.mozilla.org/vi/docs/Web/JavaScript/Reference/Global_Objects/Array/from) is a more readable solution. By the way, just beware of its browser support. //clone let x = [1,2,3]; let y = Array.from(x); //deep clone let clone = arr => Array.from(arr,item => item instanceof Array ? clone(item) : item); let x = [1,[],[[]]]; let y = clone(x);