@goju

Как передать параметр функции в луп?

Добрй вечер. Учу JS, возникла трудность.

Задание, написать функцию laugh() с параметром num, который будет означать количество возвращенных "ha".

Я сделал так, но возвращает только один раз "ha".
function laugh(num) {
    for (var i = 0; i < num; i++ ) {
        return 'ha'
    }
}

console.log(laugh(3))


В консоли должно быть "hahaha!"
  • Вопрос задан
  • 404 просмотра
Решения вопроса 5
@lemme
Frontend
// ES5
function laugh(times) {
    return new Array(times+1).join('ha')
}

// ES6
const laugh = times => 'ha'.repeat(times)
Ответ написан
Stalker_RED
@Stalker_RED
Функция возвращает только одно значение. Первый же return прервет ее выполнение.
Можно переделать несколькими способами:
// перенести вывод 'ha' в саму функцию
function laugh(num) {
    for (var i = 0; i < num; i++ ) {
        console.log('ha')
    }
}

laugh(3)



// ------------------------------
// аккумулировать результат в переменной
function laugh(num) {
    var result = ''
    for (var i = 0; i < num; i++ ) {
        result += 'ha'
    }
    return result
}

console.log(laugh(3))



// ------------------------------
// то-же самое, но возвращается массив
// можно так-же сделать с объектом
function laugh(num) {
    var result = []
    for (var i = 0; i < num; i++ ) {
        result.push('ha')
    }
    return result
}

console.log(laugh(3))



// ------------------------------
// и даже вынести аккумулирующую переменную за пределы функции
var haha = ''
function laugh(num) {
    for (var i = 0; i < num; i++ ) {
        haha += 'ha'
    }
}

laugh(3)
console.log(haha)

Можно и другие способы придумать, в зависимости от задачи.
Ответ написан
potapchino
@potapchino
function laugh(num) {
	return num !== 0 ? 'ha' + laugh(--num) : '!';
}

console.log(laugh(3)); // 'hahaha!'
Ответ написан
@svetlov97
Return завершает функцию, делай так:
function laugh(num) {
    var s = '';
    for (var i = 0; i < num; i++ ) {
         s +='ha '
    }
    return s
}

console.log(laugh(3))
Ответ написан
kulakoff
@kulakoff
Vue.js developing
Вариант:
function laugh(num) {
    return new Array(num+1).join('ha') + '!'
}
console.log(laugh(3))
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы