1.题目描述

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
var compactObject = function (obj) {
// 函数首先检查 obj 是否是数组
if (Array.isArray(obj)) {
// 如果是数组,它会递归处理数组中的每个元素,并使用 filter(Boolean) 来过滤掉数组中的假值元素
return obj.map((item) => compactObject(item)).filter(Boolean);
}

// 检查 obj 是否是对象
if (typeof obj === "object" && obj !== null) {
// 创建一个新的空对象 result,用于存储精简后的属性
const result = {};
// 接下来,函数遍历 obj 的所有属性,并将精简后的属性值存储在 result 中,前提是这个属性值不是假值。
for (const key in obj) {
// 确保只检查 obj 自身的属性,而不受原型链上属性的影响
if (Object.prototype.hasOwnProperty.call(obj, key)) {
// 递归处理每个属性值
const compactedValue = compactObject(obj[key]);
// 如果属性值为真
if (Boolean(compactedValue)) {
// 保存真值属性
result[key] = compactedValue;
}
}
}
// 最后,函数检查 result 对象,如果该对象至少包含一个属性,就返回它;否则返回 {}
return Object.keys(result).length > 0 ? result : {};
}

return obj;
};
阅读全文 »


git stagegit stash 是 Git 中用于处理工作目录中的更改的两个不同的机制,它们有各自的用途和区别。

git stage(也称为 git add:

  • 用途git stagegit add 用于将工作目录中的更改添加到暂存区(Staging Area)中,以便之后可以提交到版本控制系统。

  • 操作:你可以使用 git add 命令来选择性地添加文件或更改到暂存区。例如,git add file1.txt 将添加名为 file1.txt 的文件的更改到暂存区。

  • 持久性:暂存区的内容是持久的,它们会一直保留,直到你执行 git commit 命令将它们提交到版本控制仓库。

  • 用例git stage 用于将更改准备好以便提交到版本控制系统。通常在你认为一组更改完成并准备好提交时使用。

  • 阅读全文 »
0%