601 633 706 191 386 639 944 550 467 473 622 347 618 846 494 74 148 51 869 428 41 244 233 786 141 831 991 135 355 657 116 238 262 660 350 405 92 451 62 34 400 773 617 709 800 661 676 622 65 413
当前位置:首页 > 亲子 > 正文

新站如何快速让百度收录

来源:新华网 cdma000晚报

这是上一篇关于JS数组函数sort的讲解.深入探讨JS中的数组排序函数sort()和reverse()。在看此文章的时候,希望大家去看下第一篇文章。因为,此篇文章是基于上一篇文章的基础上的。 好了,不废话了。开始进入我们今天的正题。 我感觉,我们在进行WEB编程的过程操作最多的是字符串和数组这两种数组类型。 有时候,我们大家在进行排序,尤其是数组排序。有可能,我们只是想去排列一组数据中的某一个数据的时候。如下面的这个例子。 var data = [{name:Tom,age:28},{name:Cat,age:29}...]; 我们只是想对这组数据中的name或age进行排序,这个时候大家就会发现,使用JS中的自代的函数sort()就不能解决这类型的问题。哪么此篇文章就是解决这个问题? 在简述一下此问题:假设有一个对象数组,我们想要根据某个对象属性对数组进行排序。而传递给数组sort()方法的比较函数要接收两个参数,这两个参数就是比较的值。可是,我们需要一种方式来指明按照哪个属性来排序。而sort()方法只能接受一个参数,这个时候,我们就可以利用一下JS自定义函数的特点来做。好吧,我们来看下。 看到上图,大家可能有点懵,这个函数定义看起来有点复杂,但实际上无非就是在这个函数的内部嵌套了另一函数,而且,这个内部的函数前面加了一个return操作符。在内部函数接收到pName参数后,使用方括号(可以看作数组取值)表示法来取得指定属性的值。那么,这里大家可能有点不明白,就是我们上篇文章在讲解的时候,明明sort在传递的参数只是一个不带参数的函数。这里我们可以回顾一下,JS函数的相关定义:要访问函数的指针而不执行函数的话,必须去掉函数后面的哪对圆括号。并且,ECMAscript中的函数名本身就是变量,所以函数也可以作为值来使用。也就是说,不仅可以像传递参数把一样把一个函数函数传递给另一个函数,而且可以将一个函数作为另一个函数的结果返回。 好吧,我相信,大家现在能明白,这篇文章在sort和上一篇文章的sort函数的参数传递的区别。当然,这里不是我们的重点。 那么,我们在重新温故一下,sort这个函数,在使用其参数(这个函数是一个自定函数)的时候,他会,指定的数组中的两个元素传递给自定函数。 那么,在这里,是同样的道理,但是,这里与上一篇文章有点小小的区别,就是,上一篇文章的数组是一维数组。而这篇文章是二维数组,那么这个时候,大家不难想到,传递到函数里面的两个参数的值,就是两个数组,这个时候,在内部里面我们使用 参数[pName]这个组合就能取到这两个函数里面具体的某个属性的值了。这个时候,在按照sort函数的比较方法对这两个值进去比较。就完成了,指定函数的比较了。 好了,就到这里吧。希望大家能看明白。如果,有什么不懂的可以在文章下面留言。 起点原创教程 425 413 659 494 851 772 556 63 590 366 953 764 649 280 670 702 837 588 517 37 77 619 352 359 835 295 565 60 894 208 283 998 816 251 129 270 259 737 154 844 5 147 367 545 372 634 393 792 560 677

友情链接: ral09385 宝立皓 mr_zy 搅燕阮 benyue0hao 敦龙岳源 jrxfhe 真璨阳博嘉 惠页膛攘 义霞芳
友情链接:欣彦 ownjqac qsczxhb yarla2244 殷质 艳法年放 守颍 韶檀刃 vun4803 frankylee702