考虑以下代码:
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])
这里索引和数组是可选的
所以对于第一个问题,答案是肯定的
对于你提到的第二点,该项目映射到当前值,所以它也是肯定的。进一步了解如何使用 javascript 将函数传递给方法或函数式编程概念。
关于javascript - 加深对 map function() 和语法的理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58860673/