我试图将映射内的两个结果返回到包含函数,但它总是返回未定义的结果,我认为可能会发生这种情况,因为它返回到箭头函数而不是主函数,但我不知道如何解决它。
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]
}
}
})
}
我期望该函数会收到这两个值,但它没有,我不知道为什么。
我不完全确定你想做什么。
.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);
}
如果这不是您的初衷,请告诉我们更多有关您的目标的信息。