【发布时间】:2022-01-20 22:06:54
【问题描述】:
我正在尝试使用映射函数在 JavaScript 中动态创建表,但出现错误。谁能指点一下?
Uncaught SyntaxError: Invalid shorthand property initializer
这是我的代码:
// List of movies
let movies = [
{
title: "Fight Club",
rank: 10,
id: "tt0137523"
},
{
title: "The Shawshank Redemption",
rank: 1,
id: "tt0111161"
}
]
function displayMovies(movies){
let table = '<table>';
table += `<tr><th>ID</th><th>Name</th><th>Rank</th></tr>`;
movies.map((movie, index) => ({
table = table + `<tr>`,
table = table + `<td>` + `Title:` `${movie.id}` + `</td>`,
table = table + `<td>` + `Title:` `${movie.title}` + `</td>`,
table = table + `<td>` + `Title:` `${movie.rank}` + `</td>`
}));
table += "</table>"
document.getElementById("movies-list").innerHTML = table;
}
displayMovies(movies);
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>repl.it</title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<!-- <script src="script.js"></script> -->
<script src="demo.js"></script>
<div id="movies-list">
<!-- The div element where the movies table will be inserted -->
</div>
</body>
</html>
【问题讨论】:
-
将
=> ({替换为=> {。在您的行中使用map。如果你使用({ ...}),它认为你想要返回一个对象。 -
并将
.map()更改为.forEach()(虽然它仍然可以与地图一起使用,但如果您不使用.map的返回值,则可以使用forEach)
标签: javascript