javascript - 使用 .map FCC 格式化对象查询

标签 javascript arrays

我知道我很接近 .map,但是我通过模板文字使用的格式没有通过,所以我认为我使用了错误的方法。我在这里缺少什么?谢谢。

我没有通过套件问题:

"rating should equal [{"title":"Inception","rating":"8.8"},
{"title":"Interstellar","rating":"8.6"},{"title":"The Dark
Knight","rating":"9.0"},{"title":"Batman Begins","rating":"8.3"},
{"title":"Avatar","rating":"7.9"}]"

我的console.log(评级):

[ '{"title":"Inception","rating":"8.8"}','{"title":"Interstellar","rating":"8.6"}','{"title":"The Dark Knight","rating":"9.0"}','{"title":"Batman Begins","rating":"8.3"}','{"title":"Avatar","rating":"7.9"}' ]

我的尝试:

 var rating = [];
watchList.map((val, i, arr) => {
  rating.push(`{"title":"${val.Title}","rating":"${val.imdbRating}"}`);
});

演示测试对象:

{
    "Title": "Avatar",
    "Year": "2009",
    "Rated": "PG-13",
    "Awards": "Won 3 Oscars. Another 80 wins & 121 nominations.",
    "imdbRating": "7.9",
    "Response": "True"
  }

最佳答案

它看起来需要一个对象数组:

"rating should equal [{"title":"Inception","rating":"8.8"}, ...

但是你拥有的是一个字符串数组:

[ '{"title":"Inception","rating":"8.8"}',

尝试mapping到对象数组(并正确使用map,而不是像您当前正在做的那样作为forEach - 到map从map函数返回您想要在新数组中出现的项目):

var rating = watchList.map(val => ({
  title: val.Title,
  rating: val.imdbRating
}));

或者,通过参数解构更简洁:

var rating = watchList.map(({ Title: title, imdbRating: rating }) => ({ title, rating }));

关于javascript - 使用 .map FCC 格式化对象查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51014448/

相关文章:

javascript - 笔记功能、换行符和无内容

javascript - 如何在 JavaScript 中保存数组的状态

C++向文件写入/读取短裤数组的最快方法

arrays - 如何将数组元素按顺序保存到Core Data中

javascript - 当我在服务器中将 Promise 与 dialogflow 库一起使用时 - 出现错误

javascript - ngModel.$parsers 忽略 ng-model 值末尾的空格

javascript - 在 JavaScript 中使用 REGEX 分割字符串

javascript - nodeJS 中的持久变量

定义数组时出现 C++ 错误

Java boolean 数组打印出真问题