我的功能没有返回我想要的产品,为什么?

时间:2019-06-23 12:26:45

标签: javascript arrays product

我试图返回一个数字的每两个数字的乘积,例如我们有数字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 :(得分:0)

函数预期数组。您应该这样做: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]));

答案 1 :(得分:0)

因为您输入589是一个数字,所以array.lengthundefined,因此它没有进入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'))