每日分享.

一、push和shift的区别
数组对象的unshift与shift方法分别在数组的头部添加和删除一个元素,与push与pop方法的功能基本一样,只不过作用在数组的头部,而非尾部。因此,unshift方法有一个参数,即要添加到数组头部的元素,而shift方法则没有参数,而是返回从数组头部删除的元素。

  • shift:从集合中把第一个元素删除,并返回这个元素的值。
  • unshift: 在集合开头添加一个或更多元素,并返回新的长度
  • push:在集合中添加元素,并返回新的长度
  • pop:从集合中把最后一个元素删除,并返回这个元素的值。

二、队列和栈

队列:是一种支持先进先出(FIFO)的集合,即先被插入的数据,先被取出!

堆栈:是一种支持后进先出(LIFO)的集合,即后被插入的数据,先被取出!

看一下实现的代码(JS代码)

var a=new Array();
a.unshift(1);
a.unshift(2);
a.unshift(3);
a.unshift(4);
console.log("先进先出")
a.pop()
var a=new Array();
a.push(1);
a.push(2);
a.push(3);
a.push(4);
console.log("后进先出")
a.pop()

三、split用法

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

语法:

stringObject.split(separator,howmany)

返回值:

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

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

提示:

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

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

例子

"hello".split("")    //可返回 ["h", "e", "l", "l", "o"]

 四、.sort()底层基本原理

正序

<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>

倒序

<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>

js sort()方法的原理:

冒泡排序法。

例:

var arrA = [6,2,4,3,5,1];
    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]
posted on 2017-06-19 22:02  Iamgod`  阅读(124)  评论(0编辑  收藏  举报