Javascript数组映射方法回调参数

Javascript array map method callback parameters

本文关键字:回调 参数 方法 映射 数组 Javascript      更新时间:2023-09-26

Javascript将map方法的语法描述为:

加勒比海盗。地图(回调(thisArg])

参数

  • callback -生成一个新数组元素的函数,接受三个参数:
  • currentValue -数组中正在处理的当前元素。
  • index -数组中当前正在处理的元素的索引。
  • 数组映射被调用。
  • thisArg -执行回调时使用的值。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map

我可以编写一个JS函数,将字符串数组中每个单词的第一个字母大写,如下所示:

capyyIt(['john', 'nelson mandela', 'james booth'])     // returns ['John', 'Nelson mandela', 'James booth']
function capyyIt(names) {
  return names.map(function capIt(curr) { return curr[0].toUpperCase() + curr.slice(1).toLowerCase(); });
}
  1. 我怎么能写capIt与4个参数(即使我可能不使用他们全部)?我问是因为我尝试了4个参数,但它似乎不起作用。
  2. 如何将capIt编写为非立即调用的函数表达式-例如:

    function capyyIt(names) {
        return names.map(capIt);
    }
    function capIt(curr,index,arr) {
        return curr[0].toUpperCase() + curr.slice(1).toLowerCase();
    }
    

我不太清楚你在问什么,但让我们看看这是否是你要找的:

function capyyIt(names) {
  names.map(function(value, index, collection){
     capIt(val);
  })
}   
function capIt(name) {
  return name.toUpperCase() + curr.slice(1).toLowerCase();
}

map函数接受一个回调参数,该参数使用值、索引和集合作为参数,您不能更改这一点。因此,如果您想对每个被映射的值做一些事情,您应该在回调函数中做。