web前端关于JS的数组的几个方法,不是太理解,希望有老师不吝赐教,小谈下心得体会。
发布网友
发布时间:2022-04-07 05:39
我来回答
共2个回答
热心网友
时间:2022-04-07 07:08
function也是一种类型。sort的方法可以不传值,默认用toString()去比较。如果你传了一个function进去,那么这个排序就会用这个function做为比较器。
a和b就是两个参数,比如说当比较40 和 2时,会return一个大于0的值,那么sort就能知道40是大于2的,也就是说会根据这个返回值,对数组的位置进行调整。在此就可能会调换40和2的位置。
filter也是类似的,filter中传入的函数一般有三个参数我记得。item index 和 array
就是过滤器嘛,对所有的项执行传进去的函数,如果返回值是true就加入要返回的数组中。
比如说return item > 10; 那就会返回一个新的数组[40,11]
但是两个方法是有区别的,sort的排序方法,filter是迭代方法。
一个传入function是用于两两比较大小,一个传入function是对所有的项执行该方法。
热心网友
时间:2022-04-07 08:26
function是作为参数传递给 sort()的,这个叫回调函数, 在sort内部会将arr 的一个一个元素作为function的两个参数,来运行function,返回的结果又被sort() 使用,实现排序的。至于sort()内部的机制不太了解。追问我明白你说的大概意思了,非常感谢您!