每日分享.
一、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]