代码之家  ›  专栏  ›  技术社区  ›  Muirik

以赋值破坏为目标的特定数组元素

  •  0
  • Muirik  · 技术社区  · 6 年前

    为了处理一些后期处理,我在MongoDB/节点后端使用了一些赋值破坏。我只是想了解这种破坏是如何工作的,如果在一个由多个元素和嵌套数组组成的数组中,我可以输入我想要指向的元素。

    以该代码为例:

        services: [
          ,
          {
            history: [...preSaveData]
          }
        ]
      } = preSaveDocObj;
    

    我的假设是,上面代码的“服务”中的“”将默认为查看数组中的第一个元素。对的?

    现在,如果我有一个像这样的文档结构(见下面),并且我知道我要以“service”元素为目标,其中“service”等于“type2”,我该怎么做?:

     {
       _id: 4d39fe8b23dac43194a7f571,
       name: {
         first: "Jane",
         last: "Smith"
       }
       services: [
        {
         service: "typeOne",
         history: [ 
           { _id: 121, 
             completed: true,
             title: "rookie"
           },
           { _id: 122, 
             completed: false,
             title: "novice"
           } 
          ]
         },
         {
          service: "typeTwo",
          history: [ 
           { _id: 135, 
             completed: true,
             title: "rookie"
           },
           { _id: 136, 
             completed: false,
             title: "novice"
           } 
          ]
         }
       ]
     }
    

    如何编辑此代码(见下文)以专门针对“services”数组,其中“service”等于“type2”?

    服务业:
    ,
    {
    历史:【存储数据】
    }
    ]
    }=预售货物;
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Jonas Wilms    6 年前

    不要过度紧张,只是 find :

     const { history: [...preSavedData] } = doc.services.find(it => it.serice === "typeTwo");