我正在从集合中读取文档并存储2个不同的变量 . 但每当我从JSON中删除任何键时,它都会影响第一个变量结果 .
我想保持他们两个独立,以便改变一个不会反映其他 .
var query = 'SELECT * FROM c where c.id = "XYZ"
var accept = collection.queryDocuments(collection.getSelfLink(), filterQuery,
function (err, documents, responseOptions)
{
if (err) throw new Error("Error" + err.message);
if (documents.length != 1)
throw "Document Not Exist";
else
{
var doc1 = new Object;
var doc2 = new Object;
doc1 = documents[0];
doc2 = documents[0];
var i = doc1.abc[0].pqr;
for(x = 0; x < doc1.abc[0].pqr.length; x++)
{
delete doc1.abc[0].pqr[x];
}
console.log(doc2)
}
这里console.log(doc2)也没有显示我想要的已删除元素 .
1 回答
doc1.abc[0]
和doc2.abc[0]
表示相同的对象,它们是相同的引用 . 有关这意味着什么的更多信息,请参见this .如果要依赖修改这两个文档,则需要完全分离数据 .
这可能是最简单的方法:
(来源:How to copy JavaScript object to new variable NOT by reference?)