Как в функцию передать результаты другой функции без использования глобальных переменных?

Например, нужно передать все 4 результата первой функции во вторую, как это сделать?

function findOppositeNumbers (xMax, xMin, yMax, yMin) {
    let x1 = 2
    let x2 = 10
    let y1 = 3
    let y2 = 5

    xMax = Math.max(x1, x2)
    xMin = Math.min(x1, x2)
    yMax = Math.max(y1, y2)
    yMin = Math.min(y1, y2)
}

function findWidthAndLength (width, length) {

}


Ответы (2 шт):

Автор решения: Igor

Чтобы "результат функции" куда-то передать, его надо из функции вернуть.

function findOppositeNumbers (xMax, xMin, yMax, yMin) {
    let x1 = 2
    let x2 = 10
    let y1 = 3
    let y2 = 5

    xMax = Math.max(x1, x2)
    xMin = Math.min(x1, x2)
    yMax = Math.max(y1, y2)
    yMin = Math.min(y1, y2)
    return {xMax, xMin, yMax, yMin};
}

function findWidthAndLength (width, length, bounds) {
  console.log(bounds);
}

findWidthAndLength(1, 2, findOppositeNumbers(3, 4, 5, 6));

→ Ссылка
Автор решения: Qwertiy

Надо прямо наоборот - параметры передавать, а результаты - возвращать.

function findOppositeNumbers(x1, x2, y1, y2) {
  return {
    xMax: Math.max(x1, x2),
    xMin: Math.min(x1, x2),
    yMax: Math.max(y1, y2),
    yMin: Math.min(y1, y2),
  }
}

function findWidthAndLength(x1, x2, y1, y2) {
  var { xMax, xMin, yMax, yMin } = findOppositeNumbers(x1, x2, y1, y2)

  return {
    width: xMax - xMin,
    height: yMax - yMin,
  }
}

~function () {
  let x1 = 2
  let x2 = 10
  let y1 = 3
  let y2 = 5
  
  let sizes = findWidthAndLength(x1, x2, y1, y2)
  console.log(sizes)
}()

И вообще:

function findWidthAndLength(x1, x2, y1, y2) {
  return {
    width: Math.abs(x1 - x2),
    height: Math.abs(y1 - y2),
  }
}

~function () {
  let x1 = 2
  let x2 = 10
  let y1 = 3
  let y2 = 5
  
  let sizes = findWidthAndLength(x1, x2, y1, y2)
  console.log(sizes)
}()

→ Ссылка