javascript - 加深对 map function() 和语法的理解

标签 javascript

考虑以下代码:

var watchList = [
   {
      "Metascore": "70",
      "imdbRating": "8.3",
      "imdbVotes": "972,584",
      "imdbID": "tt0372784",
      "Type": "movie",
      "Response": "True"
   },
   {

      "Metascore": "83",
      "imdbRating": "7.9",
      "imdbVotes": "876,575",
      "imdbID": "tt0499549",
      "Type": "movie",
      "Response": "True"
   }
  ];

console.log(watchList.length);

const rating = watchList.map((function test (item) { 
  console.log(item);
  return {
    title: item["Title"],
    rating: item["imdbRating"]
  };
}));

console.log(JSON.stringify(rating));

MDN 链接

有几个与我的特定代码块中的 map() 语法相关的问题。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map

var new_array = arr.map(function callback(currentValue[, index[, array]]) {
    // Return element for new_array
}[, thisArg])

map 的使用:

`const rating = watchList.map((function test (item) {}` 

引用 MDN JavaScript 文档,在这种情况下我的说法是否正确:

1) test 是提供给 map() 方法的 callback 参数的参数吗?它没有声明callback是一个可选参数,所以我对上面的MDN语法感到困惑,当传递一个没有名称的匿名函数时,控制台中没有错误。

2) 该 item 是提供给 map() 方法的 currentValue 参数的参数,该方法是 watchList 数组中的每个元素?

最佳答案

MDN 文档指定应传递什么类型的函数(如签名)。为了进行描述,他们使用了一个名为回调的名称函数。 任何命名或匿名函数都可以完成这项工作。

var new_array = arr.map(function callback(currentValue[, index[, array]]) {
    // Return element for new_array
}[, thisArg])

这里索引和数组是可选的

enter image description here

所以对于第一个问题,答案是肯定的

对于你提到的第二点,该项目映射到当前值,所以它也是肯定的。进一步了解如何使用 javascript 将函数传递给方法或函数式编程概念。

关于javascript - 加深对 map function() 和语法的理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58860673/

相关文章:

javascript - 如何在 setInterval 和 setTimeout 函数中更改 "this"的范围

javascript - 在 Safari (Windows) 中使用 html5/js 音频时出现问题

javascript - Onclick Only 似乎只工作一次

javascript - 如何在 javascript 中为 td 动态设置对齐属性?

javascript - JavaScript 中 (function(){ 的含义

php - 是否可以在不将图像上传到服务器的情况下显示图像缩略图?

javascript - fastify 和 ajv 模式验证

javascript - 通过 AWS Javascript SDK 将 S3 缓冲区保存到文件

javascript - 光标获取单选组的列索引

javascript - 使用mootools Fx修改div的缩放