首页 > 解决方案 > map() 方法中未定义的参数

问题描述

我试图理解数组函数,但所有代码示例都由于一个特定原因而令人困惑。例如,在下面的代码中 x 没有定义。x 的作用是什么,它如何返回数组元素乘以 2?

const array1 = [1, 4, 9, 16];

// pass a function to map
const map1 = array1.map(x => x * 2);

console.log(map1);
// expected output: Array [2, 8, 18, 32]

标签: javascriptarraysfunction

解决方案


您可以在此处阅读有关map功能的信息。

它以函数为参数,并在对数组中的每个值foo应用此函数后返回一个新数组。foo

您可以在 javascript 中定义函数,如下所示:

function foo(x) {
    return x*2;
}

或像这样:

(x) => x*2;

第二种形式是一个没有名称的箭头函数,可以内联定义。它得到参数x和返回x*2,就像函数一样foo

因此map将此函数应用于foo的每个值array1,因此x在这种情况下是 中的值array1

而不是这样写:

array1.map(x=>x*2);

你可以写:

for(let i in array1) {
    array1[i] = foo(array[i]);
}

推荐阅读