Javascript之“队列“

简介: Javascript之“队列“

栈是一种先进先出的数据结构,不过对于我们Javascript语言来说没有这种结构,不过我们可以通过数组中push和shift操作进行实现


1. 实现队列结构


const queue = []
queue.push(1)
queue.push (2)
const item1 = queue.shift()
const item2 = queue.shift() 


2. 应用场景


  • 排队做核酸


先去的先做完


  • JS异步中的任务队列


JS是单线程的,无法处理异步的并发任务


使用任务队列处理异步任务



3. 练习


最近请求次数


写一个 RecentCounter 类来计算特定时间范围内最近的请求。请实现 RecentCounter 类:


RecentCounter() 初始化计数器,请求数为 0 。


int ping(int t) 在时间 t 添加一个新请求,其中 t 表示以毫秒为单位的某个时间,并返回过去 3000 毫秒内发生的所有请求数(包括新请求)。确切地说,返回在 [t-3000, t] 内发生的请求数。


保证 每次对 ping 的调用都使用比之前更大的 t 值。


var RecentCounter = function() {
    this.q = []
};
/** 
 * @param {number} t
 * @return {number}
 */
RecentCounter.prototype.ping = function(t) {
    this.q.push(t)
    while(this.q[0] < t - 3000) {
        this.q.shift()
    }
    return this.q.length
};
相关文章
|
7月前
|
消息中间件 Web App开发 JavaScript
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
242 0
|
7月前
|
JavaScript 前端开发 API
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)(下)
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
81 0
|
4月前
|
JavaScript 前端开发
js事件队列
js事件队列
144 55
|
3月前
|
JavaScript 前端开发 API
详解队列在前端的应用,深剖JS中的事件循环Eventloop,再了解微任务和宏任务
该文章详细讲解了队列数据结构在前端开发中的应用,并深入探讨了JavaScript的事件循环机制,区分了宏任务和微任务的执行顺序及其对前端性能的影响。
|
2月前
|
存储 JavaScript 前端开发
js事件队列
【10月更文挑战第15天】
49 6
|
3月前
|
JavaScript 前端开发
js事件队列
js事件队列
28 0
|
4月前
|
JavaScript 前端开发
JavaScript——一个简单的队列Demo
JavaScript——一个简单的队列Demo
41 4
|
5月前
|
JavaScript
数据结构(用 JS 实现栈和队列【三种方式】)
数据结构(用 JS 实现栈和队列【三种方式】)
56 0
|
7月前
|
前端开发 JavaScript 算法
JavaScript 中实现常见数据结构:栈、队列与树
JavaScript 中实现常见数据结构:栈、队列与树
|
7月前
|
存储 JavaScript 索引
深入理解栈和队列(js的问题)
深入理解栈和队列(js的问题)
23 0