Я хочу взять следующий массив и превратить его в последовательность #####, используя метод массива. Примечание. Я использую метод прототипа внутри класса.
this.secretWord = ['e', 'l', 'e', 'p', 'h', 'a', 'n', 't']
Ниже мой код:
getSecretWordPuzzle () {
let newArr = [];
return this.secretWord.map((elem) => {
let finalStr = newArr.push('#')
console.info(finalStr)
})
}
Мой вывод:
[ undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined ]
Мой желаемый результат: '########'
Что я делаю неправильно?
Как насчет '#'.repeat(this.secretWord.length)?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы должны возвращать значение, а не нажимать на массив; map возвращает новый массив:
const secretWord = ['e', 'l', 'e', 'p', 'h', 'a', 'n', 't']
const getSecretWordPuzzle = () => secretWord.map(_ => '#')
console.info(getSecretWordPuzzle())Или используйте foreach и верните массив, используя свой подход:
const secretWord = ['e', 'l', 'e', 'p', 'h', 'a', 'n', 't']
function getSecretWordPuzzle() {
let newArr = [];
secretWord.forEach(() => newArr.push('#'))
return newArr
}
console.info(getSecretWordPuzzle())
Вы ничего не возвращаете из функции
map, поэтому она считается неопределенной. Вот почему вы получаете массив неопределенных значений.