扫码关注官方订阅号
请问为什么sort()传了一个sortNumber()方法就可以对字符串的数组比较了呢?
走同样的路,发现不同的人生
这里需要介绍两个概念。 第一个是高阶函数:高阶函数是可以把函数作为参数,或者将函数作为返回值的函数。比如:
高阶函数
function foo(x) { return function() { return x; } }
第二个是偏函数:偏函数是通过制定部分参数来产生一个新的定制函数的函数。比如:
偏函数
var isType = function(type) { return function(obj) { return Object.prototype.toString.call(obj) == '[object ]' + type + ']'; } } var isFunction = isType('Function'); varisString = isType('String');
显然,这个sort是偏函数
Array.sort()方法将数组排序,如果不带参数(一个比较函数),则按字母序排序 关于这个比较函数: 假设第一个参数应该在前,比较函数应该返回一个负数,反之,返回一个正数,如果返回0,就以为着顺序无关紧要。
上面是javascript权威指南上的原文,如果不加这个排序函数,那就按字母序排序了。 我个人的理解,其实这个排序函数有点冒泡排序的意思。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
这里需要介绍两个概念。
第一个是
高阶函数
:高阶函数是可以把函数作为参数,或者将函数作为返回值的函数。比如:第二个是
偏函数
:偏函数是通过制定部分参数来产生一个新的定制函数的函数。比如:显然,这个sort是偏函数
上面是javascript权威指南上的原文,如果不加这个排序函数,那就按字母序排序了。
我个人的理解,其实这个排序函数有点冒泡排序的意思。