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);