Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用map()时出现意外的逗号_Javascript_Arrays_Ecmascript 6_Template Literals_Array.prototype.map - Fatal编程技术网

Javascript 使用map()时出现意外的逗号

Javascript 使用map()时出现意外的逗号,javascript,arrays,ecmascript-6,template-literals,array.prototype.map,Javascript,Arrays,Ecmascript 6,Template Literals,Array.prototype.map,我有一个包含元素列表的数组,我正在尝试使用模板字符串将此列表附加到HTML元素: var描述=[ “HTML和CSS”, “Javascript面向对象编程”, “渐进式Web应用程序(PWAs)”, “网站性能优化”, “网页打包和打包工作流”, 'Fullstack React.js', “Web组件”, “响应性网页设计”, "草图设计",, “图形和继电器” ] $('body')。追加( ` ${description.map( 职能(工作){ 返回`${work}` } )} `

我有一个包含元素列表的数组,我正在尝试使用模板字符串将此列表附加到HTML元素:

var描述=[
“HTML和CSS”,
“Javascript面向对象编程”,
“渐进式Web应用程序(PWAs)”,
“网站性能优化”,
“网页打包和打包工作流”,
'Fullstack React.js',
“Web组件”,
“响应性网页设计”,
"草图设计",,
“图形和继电器”
]
$('body')。追加(
`
    ${description.map( 职能(工作){ 返回`
  • ${work}
  • ` } )}
` )
说明 使用
toString()
方法,默认情况下,该方法通过
map
将返回的数组连接起来
为了避免这个“问题”,您可以使用
join(“”)

代码
var描述=[
“HTML和CSS”,
“Javascript面向对象编程”,
“渐进式Web应用程序(PWAs)”,
“网站性能优化”,
“网页打包和打包工作流”,
'Fullstack React.js',
“Web组件”,
“响应性网页设计”,
"草图设计",,
“图形和继电器”
]
$('body')。追加(
`
    ${ 说明.地图(功能(工作){ 返回`
  • ${work}
  • ` }).加入(“”) }
` )
.map()
返回一个数组。您可能希望返回一个包含连接在一起的数组元素的字符串。您可以使用
.join(“”)

var描述=[
“HTML和CSS”,
“Javascript面向对象编程”,
“渐进式Web应用程序(PWAs)”,
“网站性能优化”,
“网页打包和打包工作流”,
'Fullstack React.js',
“Web组件”,
“响应性网页设计”,
"草图设计",,
“图形和继电器”
]
$('body')。追加(
`
    ${description.map( 职能(工作){ 返回`
  • ${work}
  • ` } ).join(“”)/*已添加。在此处加入(“”)*/}
` )

正如其他人所指出的(为了完整起见,我将重复),返回一个新数组,其中包含传递给它的函数中更改的元素

当您将一个数组连接到一个字符串时(这里就是这样),它也会将该数组转换为一个字符串。当数组转换为字符串时,它会自动使用逗号连接

const arr=['',];

console.log(arr+“”);/映射()功能正常。问题应该来自其他地方,比如你在这里使用某种模板语言;哪一个?我在这里使用的是纯JS(ES2015)(只是对主体的jQuery选择并附加元素)。在描述中添加了一个片段。@CBroe:这些是ES2015+。哇,真不敢相信我忘了
join()
my array。谢谢,哈哈!我想知道这个被接受的答案是如何与下面的其他答案在同一分钟内出现的。map返回数组是什么?我们已经告诉它返回一个模板文本,对吗?你能澄清你的问题吗
.map
始终返回一个数组。我们不能告诉它返回一个模板文本,并且在这里没有这样做。``${description.map(function(work){return
  • ${work}
  • }``在这里我们返回模板文本
  • ${work}
  • 对吗?那么它是如何再次转换为数组的呢?您看到的是回调中的
    返回值,而不是
    数组.map
    本身。
    数组.map
    方法创建一个新数组,然后遍历现有数组,对每个元素调用回调函数,并将任何值推送到新数组上您的回调返回。最后,它返回新数组。下面是一个简单的示例,您可以在浏览器的开发工具中尝试:
    let a=[5,10,15];let b=a.map(函数(x){return-x;});console.log(a);console.log(b)正如您所看到的,回调中的
    return
    语句返回一个数字,但是
    map
    将所有这些数据收集到一个新数组中。这是清楚的