Jac*_* M. 3 javascript json object
我想知道为什么会这样?
我有一个存储在var myObj中的json对象:
var myObj = JSON.parse(fs.readFileSync('json/data.json', 'utf8'));
Run Code Online (Sandbox Code Playgroud)
然后我通过以下方式从原始对象中获取克隆:
var modObj = myObj;
Run Code Online (Sandbox Code Playgroud)
之后我从clone中删除空值:
cleansedObj = removeEmpty(modObj);
Run Code Online (Sandbox Code Playgroud)
为什么这也会改变原始的myObj并从中删除空值?
这是功能:
function removeEmpty(obj) {
Object.keys(obj).forEach(function(key) {
if (obj[key] && typeof obj[key] === 'object') removeEmpty(obj[key])
else if (obj[key] === "") delete obj[key]
});
return obj;
};
Run Code Online (Sandbox Code Playgroud)
我通过这样做找到了一种解决方法,但似乎是不成功的操作:
var cleansedObj = JSON.stringify(myObj);
cleansedObj = removeEmpty(JSON.parse(cleansedObj));
Run Code Online (Sandbox Code Playgroud)
谢谢!
你没有克隆你只是用新的变量名称引用它.
创建一个现有的新对象并使用它
var modObj = JSON.parse(JSON.stringify(myObj));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2675 次 |
| 最近记录: |