1.分组

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Array.prototype.groupBy = function (fn) {
// 定义一个对象保存最终结果值
let result = {};
// 遍历数组
this.forEach((item) => {
// 函数 fn(item) 的返回值作为 result 的属性
if (result.hasOwnProperty(fn(item))) {
// 如果对象中已经包含该属性,则将遍历到的数组值存入属性值中
// 由于属性值是一个数组,所以用 push 方法
result[fn(item)].push(item);
} else {
// 如果对象中没有包含该属性,则将遍历到的数组值构造成一个数组放入对应的属性值中
result[fn(item)] = [item];
}
});
return result;
};

/**
* [1,2,3].groupBy(String) // {"1":[1],"2":[2],"3":[3]}
*/
阅读全文 »


Cookies、Session Storage、和 Local Storage 是用于在浏览器中存储数据的不同机制,它们有各自的用途和特点。

Cookies:

  1. 存储容量: Cookies 最大可存储大约 4KB 的数据。
  2. 生命周期: Cookies 可以设置过期时间,可以是会话级别的(浏览器关闭后失效)或长期的(根据设置的过期时间)。
  3. 跨域请求: Cookies 可以在同一域名下的不同路径和子域之间共享。
  4. 安全性: Cookies 可以设置为 HTTP Only 和 Secure,以提高安全性,但仍然容易受到跨站点脚本攻击(XSS)的威胁。
  5. 用途: 通常用于存储少量的身份验证信息、会话标识、用户首选项等。
阅读全文 »


1.题目描述

给定一个异步函数数组 functions,返回一个新的 promise 对象 promise。数组中的每个函数都不接受参数并返回一个 promise。

promise resolve 条件:

当所有从 functions 返回的 promise 都成功解析时。promise 的解析值应该是一个按照它们在 functions 中的顺序排列的 promise 的解析值数组。 promise reject 条件:

当任何从 functions 返回的 promise 被拒绝时。promise 也会被拒绝,并返回第一个拒绝的原因。 请在不使用内置的 Promise.all 函数的情况下解决。

阅读全文 »


box-sizing: border-box; 是一个 CSS 属性,用于指定元素的盒模型。它影响了元素的尺寸计算方式。

默认情况下,元素的盒模型是 “content-box”,这意味着元素的宽度和高度仅包括内容的宽度和高度,不包括边框(border)和内边距(padding)。这导致了在使用固定宽度和内边距时,元素的实际宽度会超出所设置的宽度。

box-sizing: border-box; 的作用是改变盒模型为 “border-box”,这意味着元素的宽度和高度包括内容的宽度、内边距和边框。这使得在设置元素的宽度时,你可以确保元素的最终宽度不会超出你所指定的宽度。

阅读全文 »
0%