Javascript 使用stringify、regex和parse进行对象操作

Javascript 使用stringify、regex和parse进行对象操作,javascript,Javascript,我目前正在审查一个新开发人员提出的大型拉取请求的代码。我相信这个人有一种非常非常规的方式来编辑javascript对象——他使用JSON.stringify(),然后在生成的字符串上使用string.replace()来更新键和值,然后使用JSON.parse()转换回JS对象。我很确定这是一个非常糟糕的做法,但我很难解释为什么会这样。我错了吗?这是一种可以接受的代码编写方式吗?如果没有,我该如何向我的新同事解释这一点呢?首先,这是一种过于迂回的方式,有一些内置的JavaScript方法可以更有

我目前正在审查一个新开发人员提出的大型拉取请求的代码。我相信这个人有一种非常非常规的方式来编辑javascript对象——他使用
JSON.stringify()
,然后在生成的字符串上使用
string.replace()
来更新键和值,然后使用
JSON.parse()
转换回JS对象。我很确定这是一个非常糟糕的做法,但我很难解释为什么会这样。我错了吗?这是一种可以接受的代码编写方式吗?如果没有,我该如何向我的新同事解释这一点呢?

首先,这是一种过于迂回的方式,有一些内置的JavaScript方法可以更有效地完成他的工作


如果您在一个小组中工作,并且可能导致代码不一致,那么您也可以将可读性视为一个问题。这两种方法在我看来都很糟糕。

一个重要原因是:使用JS方法更容易。另一个:JSON stringify不会序列化所有内容
JSON。stringify({func:()=>'hi'})=>{}
JSON。stringify
删除未定义的键、函数和所有继承的方法,将日期对象转换为无法解析回来的字符串等。调用
.replace
也非常不可靠。如果您有
{a:{a:{a:“value”}
,并且您尝试匹配
a
键,它将不知道要匹配哪个键。询问他们不使用obj.key='newValue'