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
};
相关文章
|
2月前
|
消息中间件 Web App开发 JavaScript
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
77 0
|
3月前
|
JavaScript 前端开发 API
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)(下)
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
35 0
|
9月前
|
存储 算法 JavaScript
JavaScript 中的数据结构与算法:数组、链表、栈、队列等
在JavaScript中,数据结构和算法是非常重要的主题,它们用于有效地组织和处理数据。下面介绍几种常见的数据结构和算法:
|
4月前
|
JavaScript 前端开发
JavaScript题解剑指offer : 09. 用两个栈实现队列
JavaScript题解剑指offer : 09. 用两个栈实现队列
24 0
|
8月前
|
JavaScript 前端开发
javascript队列
javascript队列
|
消息中间件 缓存 前端开发
JS案例:实现一个简单的任务队列-TaskQueue
JS案例:实现一个简单的任务队列-TaskQueue
398 0
JS案例:实现一个简单的任务队列-TaskQueue
|
10月前
|
JavaScript
JS 实现队列 #20
JS 实现队列 #20
67 0
|
存储 算法 JavaScript
JS算法探险之队列(Queue)
知识点简讲 滑动窗口 二叉树的广度优先搜索(BFS)
|
存储 JavaScript 前端开发
「数据结构与算法Javascript描述」队列
「数据结构与算法Javascript描述」队列
「数据结构与算法Javascript描述」队列
|
JavaScript
JS实现栈和队列
JS实现栈和队列
JS实现栈和队列