使用js實現(xiàn)單鏈解決前端隊列問題的方法
更新時間:2020年02月03日 10:24:04 作者:starkwang
這篇文章主要介紹了使用js實現(xiàn)單鏈解決前端隊列問題的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
使用場景
- 比如前端需要處理什么隊列一類的業(yè)務
- 比如有人下單,需要彈出什么彈窗
首先先聲明一個類
接收一個 數(shù)組對象:items
class ChainQueue {
constructor(items) {
this.items = items || []
this.maxNum = 200
}
}
為隊列添加數(shù)組隊列
// 添加數(shù)組隊列
entryArrQueue(node) {
Array.isArray(node)
node.map(item => this.items.push(item))
}
為當前隊列添加單個對象
// 添加隊列
entryQueue(node) {
if (this.items.length > this.maxNum) {
return
}
if (Array.isArray(node)) {
node.map(item => this.items.push(item))
} else {
this.items.push(node)
}
}
刪除隊列,返回刪除的當前的項目
deleteQueue(func = () => {}) {
assert(isFunc(func), `${func} is not function`)
func(this.items.shift())
}
返回隊列的第一個
front() {
return this.items[0]
}
清除隊列
clear() {
this.items = []
}
所有代碼
const isFunc = v => typeof v === 'function'
const assert = (condition, msg) => {
if (!condition) throw new Error(`[dashboard]${msg}`)
}
class ChainQueue {
constructor(items) {
this.items = items || []
this.maxNum = 200
}
// 添加數(shù)組隊列
entryArrQueue(node) {
Array.isArray(node)
node.map(item => this.items.push(item))
}
// 添加隊列
entryQueue(node) {
if (this.items.length > this.maxNum) {
return
}
if (Array.isArray(node)) {
node.map(item => this.items.push(item))
} else {
this.items.push(node)
}
}
// 刪除隊列,返回刪除的當前的項目
deleteQueue(func = () => {}) {
assert(isFunc(func), `${func} is not function`)
func(this.items.shift())
}
// 返回隊列的第一個
front() {
return this.items[0]
}
// 清除隊列
clear() {
this.items = []
}
get size() {
return this.items.length
}
get isEmpty() {
return !this.items.length
}
print() {
console.log(this.items.toString())
console.log(this.items)
}
result() {
return this.items
}
}
module.exports = ChainQueue
// export default ChainQueue
// export default (ChainQueue = new ChainQueue())
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Javascript實現(xiàn)hashcode函數(shù)實現(xiàn)對象比較與原理說明
在JavaScript中,數(shù)值的比較是比較簡單的,使用相等(==)和全等(===)符號基本上可以解決大多數(shù)非對象的比較。但是相等(==)和全等(===)符號在對象 object 的比較上,就不能滿足所有的要求了2023-06-06
鍵盤上一張下一張兼容IE/google/firefox等瀏覽器
鍵盤上一張下一張的效果想必大家都有見到過吧,本文為大家介紹的這個兼容IE,google,firefox等主流瀏覽器2014-01-01
詳解JS中continue關鍵字和break關鍵字的區(qū)別
在javascript中continue的作用是退出當前次循環(huán),break的作用則是一旦當前循環(huán)有break那么直接退出整個循環(huán)。本文將通過一些示例為大家詳細講講二者的區(qū)別,感興趣的可以了解一下2022-08-08
swiper.js插件實現(xiàn)pc端文本上下滑動功能示例
這篇文章主要介紹了swiper.js插件實現(xiàn)pc端文本上下滑動功能,結合實例形式分析了swiper.js插件的具體引用與相關使用技巧,需要的朋友可以參考下2018-12-12
淺談使用splice函數(shù)對數(shù)組中的元素進行刪除時的注意事項
下面小編就為大家?guī)硪黄獪\談使用splice函數(shù)對數(shù)組中的元素進行刪除時的注意事項。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-12-12

