编写测试时,我JSON.stringify
所有输入并将它们作为键分配给对象,然后将该键指定为实际值,如下所示:
tests[JSON.stringify(test)] = test
问题在于JSON.stringify({color: undefined})
= {}
与JSON.stringify({})
= {}
任何人都有改进或不同方法的想法吗?
答案 0 :(得分:2)
如果您无法更改属性或使用undefined
之外的其他内容对其进行初始化,请使用replacer将其传递给stringify
,如下所示:
var obj = {key: "value", color: undefined, other: null};
// this function will be run over all key-value pairs in the object
function replacer(key, value) {
if(value === undefined) // if the value is undefined
return 'undefined'; // then return a string 'undefined' (or null if you want)
return value;
}
// then pass replacer as second parameter to stringify
var str = JSON.stringify(obj, replacer);
console.log(str);