
获得徽章 12
- #每日一题#
使用 JavaScript 实现 LRU 缓存的代码示例:
(如图)
在代码中,我们使用了 Map 来实现缓存,Map 是一种可以存储键值对的数据结构。缓存的最大容量是通过 capacity 参数传递的。
get 方法用于获取给定键的值,如果缓存中存在该键,则将其值移到最前面,并返回该值;如果缓存中不存在该键,则返回 -1。
put 方法用于将给定的键值对添加到缓存中。如果缓存中已经存在该键,则将其值更新为新的值,并将该键值对移到最前面;如果缓存已满,则删除最久未使用的键,并将新键值对添加到缓存的最前面。
这个实现可以很好地处理 LRU 缓存,因为它能够在 O(1) 时间内进行 get 和 put 操作,而不需要对整个缓存进行扫描。同时,由于使用了 Map 来存储键值对,因此它能够保持键值对的插入顺序,方便我们找到最久未使用的键。
在上面的代码中,我们使用了 Map 来实现缓存,Map 是一种可以存储键值对的数据结构。缓存的最大容量是通过 capacity 参数传递的。
get 方法用于获取给定键的值,如果缓存中存在该键,则将其值移到最前面,并返回该值;如果缓存中不存在该键,则返回 -1。
put 方法用于将给定的键值对添加到缓存中。如果缓存中已经存在该键,则将其值更新为新的值,并将该键值对移到最前面;如果缓存已满,则删除最久未使用的键,并将新键值对添加到缓存的最前面。
这个实现可以很好地处理 LRU 缓存,因为它能够在 O(1) 时间内进行 get 和 put 操作,而不需要对整个缓存进行扫描。同时,由于使用了 Map 来存储键值对,因此它能够保持键值对的插入顺序,方便我们找到最久未使用的键。展开赞过评论1 - #每日一题#
有几种方法可以获取浏览器中URL上携带的参数:
1. 使用JavaScript中的location.search属性。这个属性返回URL查询部分,也就是“?”后面的所有内容,包括参数和值。然后可以使用JavaScript的字符串操作方法,比如split()或substring()将参数和值分离。如下面的例子:
```
var queryString = window.location.search;
console.log(queryString); // "?name=John&age=25"
```
2. 使用JavaScript中的URLSearchParams对象。这是一个新的API,可以更方便地处理URL参数。如下面的例子:
```
var urlParams = new URLSearchParams(window.location.search);
console.log(urlParams.get('name')); // "John"
console.log(urlParams.get('age')); // "25"
```
3. 使用正则表达式匹配出url中的参数部分
```javascript
var reg = /(?:\?|&)(\w+)=([^&]+)/g;
var paramStr = url.match(reg);
```
这里使用了一个正则表达式来匹配出url中的参数部分。其中 `(?:\?|&)` 匹配了url中的 ? 或 & 字符,即参数的分隔符;`\w+` 匹配了一个或多个字母、数字或下划线,即参数名称;`[^&]+` 匹配了一个或多个除 & 字符以外的字符,即参数值。展开评论点赞