无法从地图内返回

问题描述 投票:0回答:1

我试图将映射内的两个结果返回到包含函数,但它总是返回未定义的结果,我认为可能会发生这种情况,因为它返回到箭头函数而不是主函数,但我不知道如何解决它。

let nums          = [1, 2, 4, 5, 6, 7, 10, 21, 42, 3]
let target        = 22
let numerodearray = -1

calculator()

function calculator(i, j) 
  {
  nums.map((item) => 
    {
    numerodearray  = numerodearray + 1
    let loopmaximo = nums.length
    for (let i = numerodearray; i < loopmaximo; i++) 
      {
      let comparator = nums[i]
      if (item + comparator == target) 
        {
        console.log(item)
        console.log(comparator)
        return [item, comparator]
        }
      }
    })
  }

我期望该函数会收到这两个值,但它没有,我不知道为什么。

javascript return
1个回答
0
投票

我不完全确定你想做什么。

.map
的目的是创建一个新数组,通过调用内部函数来计算数组的每个元素。如果这就是您想要做的,那么至少您需要将该数组分配给一个变量。例如:

const mappedArray = nums.map((item) => {
  // ...
});
console.log(mappedArray)

请注意,

mappedArray
将是一个长度为10的数组(因为这是
nums
的长度,并且数组的每个元素要么是数组,要么是未定义的(因为这是内部函数返回的内容)

let nums = [1, 2, 4, 5, 6, 7, 10, 21, 42, 3];
let target = 22;
let numerodearray = -1;

calculator();

function calculator(i, j) {
  const mappedArray = nums.map((item) => {
    numerodearray = numerodearray + 1;
    let loopmaximo = nums.length;
    for (let i = numerodearray; i < loopmaximo; i++) {
      let comparator = nums[i];
      if (item + comparator == target) {
        return [item, comparator];
      }
    }
  });
  console.log(mappedArray);
}


如果这不是您的初衷,请告诉我们更多有关您的目标的信息。

© www.soinside.com 2019 - 2024. All rights reserved.