написать функцию умножения JavaScript, которая будет возвращать два отдельных результата

1

Как вы можете видеть из вложения ниже... мой скрипт возвращает только один результат (500). Как я могу переписать свой код, чтобы получить оба результата? Заранее благодарю вас за ваш совет.

function multiplier() {
    var number = 25;
    var multiplier20 = 20;
    if (number && multiplier20); {
        return number * multiplier20;
    }
    var multiplier1 = 1;
    if (number && multiplier1); {
        return number * multiplier1;
    }
}
multiplier();

EDIT: привет, ребята, спасибо за помощь. но я понял, в чем проблема... Я не должен возвращать объект только в число. Итак, как мне отредактировать этот код, чтобы он возвращал только два числа???

  • 0
    Вы хотите получить оба результата одновременно или вы хотите получить разные результаты, когда вы вызываете multiplier() несколько раз? Для первого вы можете вернуть массив или объект; для второго вы можете написать функцию в качестве генератора.
  • 0
    Вернуть объект или массив
Показать ещё 8 комментариев
Теги:
arrays
function
multiplication

4 ответа

5

Функция может возвращать только одну вещь. Однако функция генератора (function*) может выдать столько чисел, сколько вы хотите:

 function* multiplier() {
   yield 25 * 20;
   yield 25 * 1;
 }

 console.log(...multiplier())

Вы также можете легко преобразовать результаты в массив:

const array = [...multiplier()];

(Нет, это не самый простой способ, но я пытаюсь распространять некоторые классные js :))

  • 0
    Я продолжаю получать сообщения об ошибках о ES6 ... доступно только с расширением moz ...
  • 0
    @democratizeTheEnterprise OMG обновите ваш браузер! Шутки в сторону!
1

Вы можете попробовать следующий подход

function multiplier() {
    var number = 25;
    var multiplier20 = 20;
    var res1 = 0;
    var res2 = 0;
    if (number && multiplier20); {
        res1 =  number * multiplier20;
    }
    var multiplier1 = 1;
    if (number && multiplier1); {
        res2 =  number * multiplier1;
    }
    return {res1,res2};
}
var ret = multiplier();
console.log(ret);
  • 0
    То же, что и выше: я получаю сообщения об ошибках о "этот код доступен только в ES6 ... только с расширением moz ...
0

Вы можете вернуть строку вместо 2 отдельного номера, а затем разделить на два числа. Что-то вроде этого:

function multiplier(number) {
  return number * 20 + '|' + number * 1;
}

var output = multiplier(20)
console.log(output.split('|')[0], output.split('|')[1]);
0

Или альтернативно....

function multiplier() {
  return { result1: 25 * 20, result2: 25 * 1 }
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню