Javascript将地图方法语法描述为:
arr.map(callback [,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(); });
}
如何将capIt写为非立即调用的函数表达式 - 如:
function capyyIt(names) {
return names.map(capIt);
}
function capIt(curr,index,arr) {
return curr[0].toUpperCase() + curr.slice(1).toLowerCase();
}
答案 0 :(得分:2)
我不清楚你在问什么,但让我们看看你是否正在寻找:
function capyyIt(names) {
names.map(function(value, index, collection){
capIt(val);
})
}
function capIt(name) {
return name.toUpperCase() + curr.slice(1).toLowerCase();
}
map函数接受一个使用value,index和collection作为参数的回调参数,你不能改变它。因此,如果要对要映射的每个值执行某些操作,则应在回调函数中执行此操作。