【发布时间】:2020-06-10 01:53:34
【问题描述】:
我有这个特定的 JavaScript 对象:
var a = {x: Infinity, y: NaN, z: 'hello'};
当我在以下代码中使用某个替换函数(如下)在该对象上运行 JSON.stringify(a, r) 时,我得到了预期的 console.logs:
代码:
var a = {
x: Infinity,
y: NaN,
z: 'hello'
};
var r = function(key, value) {
console.log(value);
if (typeof value === 'string') {
return undefined;
}
return value;
};
console.log(JSON.stringify(a, r));
输出:
{x: Infinity, y: NaN, z: "hello"}
Infinity
NaN
hello
{"x":null,"y":null}
但是,当我对替换函数进行这个小修改时,JSON.stringify(a, r) 似乎不会遍历对象的任何属性并返回 [object Object]:
var a = {
x: Infinity,
y: NaN,
z: 'hello'
};
var r = function(key, value) {
console.log(value);
if (!isFinite(value)) {
return value.toString();
}
return value;
};
console.log(JSON.stringify(a, r));
输出:
{x: Infinity, y: NaN, z: "hello"}
"[object Object]"
我正在尝试让函数返回
{"x":"Infinity", "y":"NaN", "z":"hello"}
我做错了什么?
【问题讨论】:
标签: javascript json