我正在记录' undefined'具有以下功能:
const names = ["James", "Simon", "Alex"];
function fullName(...argument) {
argument.map(function(name) {
return `${name} Surname`
})
}
console.log(fullName(names)) //Error

提前致谢
答案 0 :(得分:1)
您需要向地图添加return
语句,因为该函数不返回任何返回undefined
的内容。
但是我仍然感到有点怀疑为什么使用传播操作符和 传递它,因为如果你愿意,它将只选择数组的最后一个值 将它添加到您需要传递数组的数组中的每个元素 而不是单个元素
const names = ["James", "Simon", "Alex"];
function fullName(...argument) {
return argument.map(function(name) {
return `${name} Surname`
})
}
console.log(fullName(names));

我觉得应该是你打电话
const names = ["James", "Simon", "Alex"];
function fullName(names) {
return names.map(function(name) {
return `${name} Surname`
})
}
console.log(fullName(names));

答案 1 :(得分:0)
因此,正如我在评论中所提到的那样,您不清楚自己在这里想要实现的目标。首先,那不是spread
运营商。函数参数列表中使用的...
表示法适用于rest parameters
。
rest参数语法允许我们将无限数量的参数表示为数组。
这对您的示例代码意味着当您传入names
然后使用rest parameters
时,您的名字数组将被放置在一个新数组中,这意味着您的map
会只迭代第一个元素(数组)来产生:
[
"James,Simon,Alex Surname"
]
......这是错误的。
你需要做的就是传入数组,让函数接受一个数组作为参数,映射名称并返回新数组。
const names = ["James", "Simon", "Alex"];
function fullName(arr) {
return arr.map(name => `${name} Surname`);
}
console.log(fullName(names));