首页 > 代码库 > 6.19随笔

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 执行的操作是相反的。

6.19随笔