关于JS的算法题

function largestOfFour(arr) {
  return arr.map(Function.apply.bind(Math.max, null));
}
largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);

这Function.apply.bind(Math.max, null) 该怎么理解??


HUX布斯
浏览 633回答 1
1回答

守着一只汪

假如直接这样function largestOfFour(arr) {  return arr.map(Math.max); }输出一定是四个NAN因为Math.max的参数不能是数组,一定是Math.max(1,2,3)这样的格式所以传给map的callback一定是可以处理数组的每一项由[1,2,3]变成1,2,3来看函数:function largestOfFour(arr) {  return arr.map(Function.apply.bind(Math.max, null)); }单独拿出来看Function.apply.bind(Math.max, null)Function.apply里面的this被替换成Math.max,同时参数传过去null这时候arr里面的每一项数组作为参数传递给Function.apply,由Math.max处理,而数组当做apply的第二个参数正好处理不知道我解释的清不清晰~~
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript