Array 看书日记
Array 类型是JavaScript最常用的类型 方法也很多 本人作为小白 老是忘记数组方法 所以想写博客来加深记忆。
数组可以表现得就像栈一样。
本文章是在看JavaScript高级编程第三版时做的笔记
本人认为学好JavaScript最主要就是基础,基础不牢,地动山摇。
push() 和pop()方法
push()方法可以戒手任意数量的参数,把参数逐个添加到数组末尾。
pop()方法则是从数组末尾移除最后一项,减少数组length的值,然后返回移除的项。 个人认为这个方法并不是很好用,比较有局限性,每次只能删除最后一项,该方法不接收参数。
队列方法 shift() unshift()
shift() 能取得数组开头的项。和pop()类似 shift()方法会移除数组的第一项并把移除的项返回
unshift()方法 和shift()方法相反 一个删除一个添加
unshift()能接收任意的参数
可以看到 unshift()方法返回的是数组的长度。
重排列方法 reverse() sort()
reverse()方法可以翻转数组的排序。但是在处理业务逻辑的时候显得不够灵活。
而sort方法按升序排列数组项,就是最小的值位于前面,最大的值排在后面。为了实现排序.sort()方法会调用每个数组的项的toString()方法,然后比较的到的字符串,来确定如何排序,即使数组中每一项都是数值,该方法还是比较的也是字符串。
可以得到一个这样的结果,具体是怎么排序的我来说说我的个人理解
可以把这个数组先往最左边的数字比一遍,然后再到最左边的第二位数来比。我再列一段代码来看
改方法我来仔细的分析一遍如何得到该结果
0肯定是最小的排第一位,然后看最左边的第一位数 可以排出 [0,15,105,26,66,88,8]
然后开始比对最左边数第二个数
[0,105,15,26,66,88,8]
可以看出只有105是三位数 只需再比对一下88 和 8 这两个数 有一位数是相同的 ,而数字越多越大 也就可以得出该控制台的结果.
该方法可以接受一个函数作为参数。来进行对数组的排序。
现在可以实现了正常的升序排列了。在传入了compare函数后,在比较函数在第一个值应该位于第二个之后的情况下返回-1,而在第一个值应该在第二个之前的情况下返回1 返回值得意思就是让更大的值排位靠后,就是对数组的升序