Javascript JSON.parse()恢复程序函数的奇怪行为

Javascript JSON.parse()恢复程序函数的奇怪行为,javascript,json,parsing,Javascript,Json,Parsing,我使用JSON.parse()的第二个参数来修改结果,但我不太清楚函数参数的顺序以及它是如何工作的 我已经阅读了有关使用复活器功能的文件(例如和)。 据我所知,这个函数将与对象一起工作,第一个参数是键或属性名,第二个函数是值或属性值。我不理解的是函数的返回值 这就是示例中所做的 var obj1='{a:1,“b:42}'; 让text=JSON.parse(obj1,(键,值)=>{ 如果(值的类型=='number'){ 返回值*2 } 否则{ 返回值 } } ) console.log(

我使用JSON.parse()的第二个参数来修改结果,但我不太清楚函数参数的顺序以及它是如何工作的

我已经阅读了有关使用复活器功能的文件(例如和)。 据我所知,这个函数将与对象一起工作,第一个参数是键或属性名,第二个函数是值或属性值。我不理解的是函数的返回值

这就是示例中所做的

var obj1='{a:1,“b:42}';
让text=JSON.parse(obj1,(键,值)=>{
如果(值的类型=='number'){
返回值*2
}
否则{
返回值
}
}
)

console.log(text)/{“a”:2,“b”:84}
,因为它还将遍历对象
{“a”:1,“b”:42}
。它将从最嵌套的级别开始,然后将转到原始值本身
{“a”:1,“b”:42}

如果指定了恢复器,则在返回之前将转换通过解析计算的值。具体地说,计算值及其所有属性(从最嵌套的属性开始,一直到原始值本身)分别通过恢复器运行

顺便说一下,你可以缩短你的功能

var obj1='{a:1,“b:42}';
让text=JSON.parse(obj1,(_,value)=>value*2 | | value)

console.log(text)
,因为它还将遍历对象
{“a”:1,“b”:42}
。它将从最嵌套的级别开始,然后转到原始值本身
{“a”:1,“b”:42}

如果指定了恢复器,则在返回之前将转换通过解析计算的值。具体地说,计算值及其所有属性(从最嵌套的属性开始,一直到原始值本身)分别通过恢复器运行

顺便说一下,你可以缩短你的功能

var obj1='{a:1,“b:42}';
让text=JSON.parse(obj1,(_,value)=>value*2 | | value)

console.log(text)
但是我的意思是,当
值应该足够写
(\uu,value)=>value*2
但是我的意思是,当
值应该足够写
(\uu,value)=>value*2
时,为什么需要
部分