JS中的数组提供了四个操作,以便让我们实现队列与堆栈!
小理论:
队列:先进先出
堆栈:后进先出
实现队列的方法:
1,shift: 从集合中把第一个元素删除,并返回这个被删除的元素的值。(此方法改变数组的长度) <body><p id="demo">单击按钮删除数组的第一个元素。</p>
<p id="demo2"></p> <button onclick="myFunction()">点我</button> <script> var fruits = ["Banana", "Orange", "Apple", "Mango"]; function myFunction(){ var delell = fruits.shift(); var x=document.getElementById("demo"); x.innerHTML= '删除后数组为:' + fruits; document.getElementById("demo2").innerHTML= '删除的元素是:' + delell; } </script> </body>
//运行结果:
删除后数组为:Orange,Apple,Mango
删除的元素是:Banana
2,pop:从集合中把最后一个元素删除,并返回这个元素的值。
3,unshift: 在集合开头添加一个或更多元素,并返回新的长度。
注意: 该方法将改变数组的数目。
提示: 将新项添加到数组末尾,请使用 push() 方法。
将新项添加到数组起始位置: var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.unshift("Lemon","Pineapple");
fruits 将输出: Lemon,Pineapple,Banana,Orange,Apple,Mango
4,push:在集合中添加元素,并返回新的长度
语法://array.push(item1, item2, ..., itemX)
5,slice:
slice() 方法可从已有的数组中返回选定的元素。
slice()方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。
注意: slice() 方法不会改变原始数组。
数组的运用:
“实现一个函数输入123456789,输出123,456,789” //这是我按照当时的思路,重新完善了一下能实现的版本。当时太紧张了了=。=,并不能保证那个代码一定跑起来了 function cal(str) { var target = '', arrStore = [] target = typeof str === 'number' ? str.toString() : str target = target.split('').reverse() for(var i = 0; i < target.length; i++) { arrStore.unshift(target[i]) if((i + 1) % 3 === 0) { if(i+1 !== target.length) arrStore.unshift(',') } } return arrStore.join('') } cal(123456789) //"123,456,789"