Я не могу преобразовать числа массива в строки. Что не так с моим кодом?
Я также пробовал: this.userIds.toString().split(',')
collectIds() {
this.array.forEach((e, i) => {
// [8, 8, 8, undefined, undefined, undefined]
if (this.array[i].details.user_id !== undefined) {
this.userIds.push(this.array[i].details.user_id)
// [8, 8, 8]
}
});
this.userIds.map(e => e.toString())
console.info("userIds: ", this.userIds)
// [8, 8, 8]
}В вашем демонстрационном коде есть ошибка, и нет демонстрационных данных.
this.userIds = this.array.filter( x => x!== undefined).map(x => x.toString());


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


Array.prototype.map() возвращает новый массив.
Вам нужно будет переназначить this.userIds, если это ваше намерение.
this.userIds = this.userIds.map(e => e.toString())
map создает новый массив с преобразованными элементами. Он не изменяет старый.
Вы можете переназначить this.userIds новому массиву.
this.userIds = this.userIds.map(e => e.toString());
Или вы можете использовать forEach и изменять массив во время итерации.
this.userIds.forEach((e, i, a) => a[i] = e.toString());
Я использовал метод forEach, спасибо!
Пожалуйста, добавьте массив к демо-фрагменту выше, чтобы мы могли увидеть результат.