Моя функция не возвращает продукт, который я хочу, почему? - PullRequest
0 голосов
/ 23 июня 2019

Я пытаюсь вернуть произведение каждых двух чисел числа, например, у нас есть номер 123, я пытаюсь иметь 1 * 2, а затем 2 * 3. Что бы ни было наибольшим, его следует добавить в конечный продукт; переменная.

const findLargestProduct = array => {

    let i=0, j=1, product = 0;

    while (j < array.length) {

        let result = array[i] * array[j];

        if (result > product) {
            product = result;

        }
        i++
        j++

    } return product;

}

console.log(findLargestProduct(589))

результат для этого кода должен быть 72 (8 * 9 = 72)

Ответы [ 2 ]

0 голосов
/ 23 июня 2019

Поскольку вы вводите 589, это число, поэтому array.length равно undefined, и оно не пошло в цикл while.

Вы можете изменить его с 589 на «589».

const findLargestProduct = array => {

    let i=0, j=1, product = 0;
    console.log(array.length);
    while (j < array.length) {

        let result = array[i] * array[j];
        

        if (result > product) {
            product = result;

        }
        i++
        j++

    } return product;

}

console.log(findLargestProduct('589'))
0 голосов
/ 23 июня 2019

Функция ожидаемого массива.Вы должны сделать это: findLargestProduct ([5,8,9]).Или в функции: array = array.toString().split('')

const findLargestProduct = array => {
  let i = 0,
    j = 1,
    product = 0;

  while (j < array.length) {
    let result = array[i] * array[j];

    if (result > product) {
      product = result;
    }
    i++;
    j++;
  }
  return product;
};

console.log(findLargestProduct([5,8,9]));
...