簡體   English   中英

深拷貝Object 添加一個key:value

[英]Deep copy of the Object to add a key : value

我正在使用mongoosenext.jsreact-query從數據庫中預取產品。 我想知道為什么我需要對嵌套的 object 進行深層復制才能為其添加鍵:值。 否則它不起作用。 讓我知道我不明白的地方。

await queryClient.prefetchQuery(['productSlug', slug], async () => {
  const product = await read(slug);

  const existingRatingObject = product.ratings.find(
    (item) => item.postedBy.toString() === user._id.toString()
  );
  const copyProduct = JSON.parse(JSON.stringify(product));

  if (existingRatingObject) {
    copyProduct.star = existingRatingObject.star;
  } else {
    copyProduct.star = 0;
  }

  console.log({ copyProduct });
  return JSON.stringify(copyProduct);
});

原因是獲取的產品是 Mongoose 文檔,而不是普通的舊 JavaScript object。

當您將其轉換為普通的舊 javascript Object 時,您將能夠向其添加任何密鑰。

您可以在查詢中添加.lean() 或將 toObject/toJSON 添加到獲取的文檔中

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM