ES6集无法在简单的Express Node.js应用中使用

我有一个使用Express和Node的简单应用程序(在Windows上为v12.13.0)。 我发现我无法向Set添加任何内容。

我很累于在其中添加不同类型的对象,但是根本无法正常工作。 Object.prototype.toString.call(aSet)输出“ [对象集]”:

let users = new Set();
users.add('1');
console.log('users: ' + JSON.stringify(users));

上面的输出{}是一个空对象,尽管Set中有项目。

cangmings 回答:ES6集无法在简单的Express Node.js应用中使用

集合不是普通对象-它们是Set实例,因此(就像其他不是普通对象的对象一样,例如日期,正则表达式,函数等),它们不能是变成JSON或返回。如果要序列化它们,请先将它们转换为数组(然后进行反序列化,请将该数组传递给new Set):

let users = new Set();
users.add('1');
const arrUsersJSON = JSON.stringify([...users]);
console.log('users: ' + arrUsersJSON);

// Deserialize:
const deserializedArr = JSON.parse(arrUsersJSON);
const deserializedSet = new Set(deserializedArr);
console.log(deserializedSet.has('1'));

本文链接:https://www.f2er.com/3162767.html

大家都在问