Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions 1-js/05-data-types/12-json/1-serialize-object/task.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ importance: 5

---

# 将对象转换为JSON并返回
# 将对象转换为 JSON,然后再转换回来

转换 `user` JSON 然后将其存进另一个变量
`user` 转换为 JSON,然后将其转换回到另一个变量

```js
let user = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,5 +26,5 @@ alert( JSON.stringify(meetup, function replacer(key, value) {
*/
```

这里我们也需要判断 `key==""` 以排除第一个调用时 `value` 是 `meetup` 的情况。
这里我们还需要判断 `key==""` 以排除第一个调用时 `value` 是 `meetup` 的情况。

11 changes: 5 additions & 6 deletions 1-js/05-data-types/12-json/2-serialize-event-circular/task.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ importance: 5

# 排除反向引用

在简单循环引用的情况下,我们可以通过名称排除序列化中匹配的属性
在简单循环引用的情况下,我们可以通过名称排除序列化中违规的属性

但有时会有很多反向引用。可以同时用于循环引用和常规属性
但是,有时我们不能只使用名称,因为它既可能在循环引用中也可能在常规属性中使用。因此,我们可以通过属性值来检查属性

编写 `replacer` 函数,排除引用 `meetup` 的属性并将所有序列化
编写 `replacer` 函数,移除引用 `meetup` 的属性,并将其他所有属性序列化

```js run
let room = {
Expand All @@ -22,7 +22,7 @@ let meetup = {
};

*!*
// circular references
// 循环引用
room.occupiedBy = meetup;
meetup.self = meetup;
*/!*
Expand All @@ -31,12 +31,11 @@ alert( JSON.stringify(meetup, function replacer(key, value) {
/* your code */
}));

/* result should be:
/* 结果应该是:
{
"title":"Conference",
"occupiedBy":[{"name":"John"},{"name":"Alice"}],
"place":{"number":23}
}
*/
```

Loading