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
};
相关文章
|
9天前
|
消息中间件 Web App开发 JavaScript
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
86 0
|
9天前
|
JavaScript 前端开发 API
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)(下)
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
39 0
|
8天前
|
前端开发 JavaScript 算法
JavaScript 中实现常见数据结构:栈、队列与树
JavaScript 中实现常见数据结构:栈、队列与树
|
9天前
|
存储 JavaScript 索引
深入理解栈和队列(js的问题)
深入理解栈和队列(js的问题)
|
10月前
|
存储 算法 JavaScript
JavaScript 中的数据结构与算法:数组、链表、栈、队列等
在JavaScript中,数据结构和算法是非常重要的主题,它们用于有效地组织和处理数据。下面介绍几种常见的数据结构和算法:
|
9天前
|
消息中间件 算法 JavaScript
JavaScript算法和数据结构:描述一下栈和队列的特点及应用场景。
JavaScript算法和数据结构:描述一下栈和队列的特点及应用场景。
44 0
|
9天前
|
JavaScript 前端开发
JavaScript题解剑指offer : 09. 用两个栈实现队列
JavaScript题解剑指offer : 09. 用两个栈实现队列
24 0
|
9月前
|
JavaScript 前端开发
javascript队列
javascript队列
|
消息中间件 缓存 前端开发
JS案例:实现一个简单的任务队列-TaskQueue
JS案例:实现一个简单的任务队列-TaskQueue
421 0
JS案例:实现一个简单的任务队列-TaskQueue
|
11月前
|
JavaScript
JS 实现队列 #20
JS 实现队列 #20
69 0