6.19

shift:从集合中把第一个元素删除,并返回这个元素的值。

 

unshift: 在集合开头添加一个或更多元素,并返回新的长度

 

push:在集合中添加元素,并返回新的长度

 

pop:从集合中把最后一个元素删除,并返回这个元素的值。

 

 

 

 

 

栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。

 

栈是限定仅在表头进行插入和删除操作的线性表。

 

 

 

 队列

 

队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。

 

 

 

js数组的sort排序的原理和应用 

 

1、js sort()方法的应用:

 

首先:如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。

 

如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:

 

若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。

 

若 a 等于 b,则返回 0。

 

若 a 大于 b,则返回一个大于 0 的值。

 

例1:

 

<script>  

 

  var numArr = new Array(12,23,1,4,23,34,2,5);  

 

  numArr.sort(function compare(a,b){return a-b;});  

 

  for (var i = 0; i<numArr.length; i++) {  

 

    document.write(numArr[i] +"<br>");  

 

  }  

 

</script>

 

 

 

这一段代码显示结果: 正序!1 ,2,4,5,12,23,23,34

 

例二:

 

 

 

<script>  

 

  var numArr = new Array(12,23,1,4,23,34,2,5);  

 

  numArr.sort(function compare(a,b){return b-a;});  

 

  for (var i = 0; i<numArr.length; i++) {  

 

    document.write(numArr[i] +"<br>");  

 

  }  

 

</script>

 

 

 

这一段代码显示结果: 倒序!34,23,23,12,5,4,2,1

 

这说明正序倒序的结果和sort()方法函数中的参数位置有关。

 

2js sort()方法的原理:

 

冒泡排序法。

 

例:

 

1var arrA = [6,2,4,3,5,1];

 

2 arrA.sort();

 

这个排序这进行两两比较.

 

比如你这个数组按升序排列var arrA = [6,2,4,3,5,1];

 

第一次比较6,2

 

6比2大得到2,6

 

原数组变成[2,6,4,3,5,1]

 

 

 

第2次比较第2个和第3个数,6和4.

 

6比4大,得到4,6

 

结果[2,4,6,3,5,1]

 

 

 

第3次比较第3个和第4个数6和3.

 

得到[2,4,3,6,5,1]

 

 

 

第4次[2,4,3,5,6,1]

 

第5次[2,4,3,5,1,6]

 

第一轮完毕

 

 

 

第二轮

 

第6次,2比4小,不变[2,4,3,5,1,6]

 

第7次[2,3,4,5,1,6]

 

第8次4比5小,不变[2,3,4,5,1,6]

 

第9次[2,3,4,1,5,6]

 

第三轮

 

第10次 2比3小,不变[2,3,4,1,5,6]

 

第11次 3比4小,不变[2,3,4,1,5,6]

 

第12次 [2,3,1,4,5,6]

 

第4轮

 

第13次 2比3小,不变[2,3,1,4,5,6]

 

第14次 [2,1,3,4,5,6]

 

 

 

第5轮 

 

第15次[1,2,3,4,5,5]

 

同理可知后续过程。

 

3、随机排列的写法

 

 

 

arr.sort

 

    (

 

        function ()

 

        {

 

            return Math.random()<0.5?1:-1;

 

        }

 

    );

 

 

 

split用法:

 

 

 

定义和用法

 

split() 方法用于把一个字符串分割成字符串数组。

 

语法

 

stringObject.split(separator,howmany)

 

参数

 

描述

 

separator

 

必需。字符串或正则表达式,从该参数指定的地方分割 stringObject。

 

howmany

 

可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。

 

返回值

 

一个字符串数组。该数组是通过在 separator 指定的边界处将字符串 stringObject 分割成子串创建的。返回的数组中的字串不包括 separator 自身。

 

但是,如果 separator 是包含子表达式的正则表达式,那么返回的数组中包括与这些子表达式匹配的字串(但不包括与整个正则表达式匹配的文本)。

 

提示和注释

 

注释:如果把空字符串 ("") 用作 separator,那么 stringObject 中的每个字符之间都会被分割。

 

注释:String.split() 执行的操作与 Array.join 执行的操作是相反的。

posted on 2017-06-20 08:52  小凉橙  阅读(126)  评论(0编辑  收藏  举报

导航