当前位置: 首页 > 知识库问答 >
问题:

用更新值数组更新对象数组

鲁品
2023-03-14

我有一系列推车。我想更新请求对象中的产品数量。即。

cart: [
    {
      quantity: 2,
      _id: 60757fdca818d96ed87c852e,
      productID: 101,
      vendorID: 60642991015028ba0a6ce72c
    },
    {
      quantity: 2,
      _id: 607584b4a818d96ed87c852f,
      productID: 102,
      vendorID: 60642991015028ba0a6ce72c
    }
  ]

我有一个数组的产品和数量,比如:

updatedValues: [
           { productID:'101', quantity: 3 },
           { productID:'102', quantity: 1 } 
         ]

我想更新它们,如:

cart: [
    {
      quantity: 3,
      _id: 60757fdca818d96ed87c852e,
      productID: 101,
      vendorID: 60642991015028ba0a6ce72c
    },
    {
      quantity: 1,
      _id: 607584b4a818d96ed87c852f,
      productID: 102,
      vendorID: 60642991015028ba0a6ce72c
    }
  ]

这可能的逻辑是什么?

共有1个答案

茅星雨
2023-03-14

所以要更新一个prev。状态数组,您可以首先循环访问prev。状态,然后逐项运行一个函数,该函数在包含更新值的新数组中迭代,并找到指向Prev中的特定项。项的状态并分别更新它们。这里我使用数组的find函数,.find()在更新值的数组中循环,如果它找到了一些东西,它就返回找到的对象,否则定义。所以,我想这可能对你有帮助:

  /* Here I'm assuming you already have original array coming from somewhere, inside results
 variable and updationArray represents the array containing updated information **/

const updatedResults = results.map((res)=>(modifyItem(res, updationArray)));

/* This function runs when we run the map function on results item wise **/
const modifyItem = (item, updationArray) => {
  const modifiedResult = updationArray.find(({productID})=> (productID === String(item. productID)));
  if(!modifiedResult)
     return item;
  return { ...item, ...modifiedResult }
}

因此updatedvalues变量应该包含具有更新值的数组。

 类似资料:
  • 问题内容: 有没有一种方法可以更新对象中的值? 假设我要为id = 2的项更新名称和值项; 我尝试了以下w /猫鼬: 这种方法的问题在于它会更新/设置整个对象,因此在这种情况下,我会丢失id字段。 猫鼬中是否有更好的方法来设置数组中的某些值,但不理会其他值? 我也只查询了这个人: 问题答案: 你近了 您应该在使用update运算符时使用点符号来做到这一点:

  • 是否有方法更新对象中的值? 假设我想更新id=2的项目的名称和值项目; 我尝试过以下猫鼬: 这种方法的问题在于它更新/设置了整个对象,因此在本例中,我丢失了id字段。 在mongoose中有没有更好的方法来设置数组中的某些值,而不设置其他值? 我也问过只是人:

  • 问题内容: 我遇到了一个mongo问题。我想知道是否有办法做一个蒙戈控制台命令而不是多个以下和电话。 我想用这个新的数组项更新对象 我使用了此方法,它是有限的,如果它已经存在,它不会将一个项目插入数组,但不会基于标识符更新项目。在这种情况下,我真的很想根据来更新此条目。 这给了我: 当我真正想要的是: 问题答案: 您可以使用位置运算符执行此操作: 的在更新对象充当的第一个元素的占位符到查询选择器相

  • 我需要更新嵌套在我的用户文档中的一个字段,该字段包含一个part对象数组,以添加新的part。一个part对象如下所示: 所以这意味着$addToset对我的情况没有好处...现在我不知道该怎么办。

  • 问题内容: 我目前正在尝试使用Firestore,但遇到了非常简单的问题:“更新数组(又称子文档)”。 我的数据库结构非常简单。例如: 我正在尝试(没有成功)将新记录推入对象数组。 我试过了: 没有效果。这些查询将覆盖我的数组。 答案可能很简单,但我找不到它… 问题答案: 当前无法在Cloud Firestore中更新单个数组元素(或添加/删除单个元素)。 这段代码在这里: 这是说,在设置文件,使

  • 我正在尝试更新我的猫鼬数据- 这里是数据结构- 现在我必须更新产品数量和价格。 这是我的练习-