35 lines
		
	
	
		
			977 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			35 lines
		
	
	
		
			977 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | --- | ||
|  | title: Copy an Array with the Spread Operator | ||
|  | --- | ||
|  | ## Copy an Array with the Spread Operator
 | ||
|  | 
 | ||
|  | - The final hint in the example tells you to use a recently learned method. | ||
|  | - The spread operator copies all elements into a new empty object.  | ||
|  | 
 | ||
|  | ```javascript  | ||
|  | while (num >= 1) { | ||
|  |     newArr = [...arr] | ||
|  |     num--; | ||
|  | } | ||
|  | ``` | ||
|  | 
 | ||
|  | - The code above will copy all of the elements into `newArr` but will also reinitialise `newArr` with every new iteration of the while loop.  | ||
|  | - A new variable should first be initialised using the spread operator - `let obj = [...arr];` - then this variable should be added to the `newArr` for every iteration of the while loop. | ||
|  | 
 | ||
|  | ## Solution:
 | ||
|  | ```javascript | ||
|  | function copyMachine(arr, num) { | ||
|  |   let newArr = []; | ||
|  |   while (num >= 1) { | ||
|  |     // change code below this line | ||
|  |     newArr.push([...arr]); | ||
|  |     // change code above this line | ||
|  |     num--; | ||
|  |   } | ||
|  |   return newArr; | ||
|  | } | ||
|  | 
 | ||
|  | // change code here to test different cases: | ||
|  | console.log(copyMachine([true, false, true], 2)); | ||
|  | ``` |