map() 方法在 JavaScript 中返回 undefined [已解决]

map() 方法在 JavaScript 中返回未定义[已解决]

map() method returns undefined in JavaScript [Solved]

map()当我们忘记在传递给方法的回调函数中显式返回值时,该方法返回未定义的值。确保从回调函数返回一个值,以不获取undefined数组中的任何值。

索引.js
const arr = [1, 2, 3]; const newArr = arr.map(num => { if (num > 2) { return num + 1; } }); console.log(newArr); // 👉️ [undefined, undefined, 4]

如果满足条件并且if
块运行,该示例仅返回一个值。

在所有其他情况下,我们隐式返回undefined

undefined要不从该方法返回值map(),您必须从传递给 的回调函数中显式返回一个值map()

索引.js
const arr = [1, 2, 3]; const newArr = arr.map(num => { if (num > 2) { return num + 1; } return num; }); console.log(newArr); // 👉️ [1, 2, 4]

即使if不满足条件,我们也会返回一个值。这样就解决了回调函数返回的问题undefined

我们传递给
Array.map
方法的函数会针对数组中的每个元素进行调用。

map()方法返回的数组由回调函数返回的值组成。

如果您不从 JavaScript 中的函数返回值,则隐式返回undefined.

索引.js
function example() { } console.log(example()); // 👉️ undefined

这是该方法返回包含map()的数组
的最常见原因。
undefined

您可能还会显式地undefined从函数返回一个值。

索引.js
const arr = [1, 2, 3]; const newArr = arr.map(num => { return arr[100]; }); console.log(newArr); // 👉️ [undefined, undefined, undefined]

100我们从回调函数返回索引处的数组元素。数组中不存在该索引,因此我们显式返回undefined

请注意,您不必使用return关键字从箭头函数返回值。您可以使用速记语法。

索引.js
const arr = [1, 2, 3]; const newArr = arr.map(num => num + 1); console.log(newArr); // 👉️ [2, 3, 4]
如果您可以在快速的一行中计算返回值,则可以直接在箭头之后返回值=>

如果使用大括号,则必须显式使用return关键字。

要直接返回对象,请将对象括在括号中。

索引.js
const arr = [1, 2, 3]; const newArr = arr.map(num => ({myNumber: num + 1})); // 👇️ [{myNumber: 2}, {myNumber: 3}, {myNumber: 4}] console.log(newArr);

将对象包裹在括号中向函数表明我们直接返回一个对象,而不是仅使用花括号,后者会导致函数隐式返回undefined

索引.js
const arr = [1, 2, 3]; const newArr = arr.map(num => { myNumber: num + 1; }); // 👇️ [undefined, undefined, undefined] console.log(newArr);

结论

map()当我们忘记在传递给方法的回调函数中显式返回值时,该方法返回未定义的值。确保从回调函数返回一个值,以不获取undefined数组中的任何值。