增进对地图函数()和语法的理解

问题描述 投票:0回答:2

请考虑以下代码:

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])

使用地图:

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

参考MDN JavaScript文档在这种情况下我是正确的:

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

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

javascript
2个回答
1
投票

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

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

这里索引和数组是可选的

enter image description here

所以第一个问题是肯定的

关于您提到的第二点,该项目映射到当前值,因此也是。要进一步了解如何使用javascript将函数传递给方法或函数编程概念。


0
投票

正如您在MDN中看到的:

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

如写

var new_array = arr.map(function(item){.....})

in []中的值是可选的,最后是绑定“ this”]

尤其是如果您将使用箭头功能

var new_array = arr.map(item=>{})

您也可以创建一个函数

function test(item){.....}

并在回调中使用

var new_array = arr.map(test(item))
© www.soinside.com 2019 - 2024. All rights reserved.