Question: ```
const howLong = 5

```

```
let special = [
    "!",
    "@",
    "#",
    "$",
    "%",
    "+",
    "&",];

let finalPassword = []

for (let i = 0; i < howLong; i++) { 
    finalPassword += special[Math.floor(Math.random() * howLong)].push

}

```

console prints undefined 5x, my goal is to make it copy 5 random characters from the "special" array into a new var "finalPassword"

Answer: 
In the for loop iteration, generate a random index and then access the special array in that index to fetch the special character.

```js
const howLong = 5;

let special = [
    "!",
    "@",
    "#",
    "$",
    "%",
    "+",
    "&",];

let finalPassword = []

for (let i = 0; i < howLong; i++) { 
    const currentRandom = Math.floor(Math.random() * howLong);
    finalPassword.push(special[currentRandom]);
}

console.log(finalPassword);
```
In your example you simply have to remove `.push` it seems.

```js
let special = ["!", "@", "#", "$", "%", "+", "&"];

let finalPassword = [];

for (let i = 0; i < 5; i++) {
  finalPassword += special[Math.floor(Math.random() * 5)];
}

console.log({ finalPassword });
```