代码之家  ›  专栏  ›  技术社区  ›  Muthukumar Marichamy

使用lodash或javascript从对象数组中移除基键对象

  •  0
  • Muthukumar Marichamy  · 技术社区  · 6 年前

    我有下面的对象数组,其中有一个具有一组值的基对象。

    我需要删除所有数据的基对象,并将其作为下面的预期结果。

    实例数组

    [
         {
            "100": {
                "id": "100",
                "name": "Test name 1"
            },
            "101": {
                "id": "101",
                "name": "Test name 2"
            },
            "102": {
                "id": "102",
                "name": "Test name 3"
            }
    
         }
    ]
    

    预期结果

    [        
            {
                "id": "100",
                "name": "Test name 1"
            },
            {
                "id": "101",
                "name": "Test name 2"
            },
            {
                "id": "102",
                "name": "Test name 3"
            }         
    ]
    
    1 回复  |  直到 6 年前
        1
  •  2
  •   Ori Drori    6 年前

    你可以迭代 Array.map() ,获取对象的值 Object.values() ,并将结果展平为单个数组 spreading 进入之内 Array.concat() :

    const data = [{"100":{"id":"100","name":"Test name 1"},"101":{"id":"101","name":"Test name 2"},"102":{"id":"102","name":"Test name 3"}}];
    
    const result = [].concat(...
      data.map(o => Object.values(o))
    );
    
    console.log(result);

    你可以用木屑 _.flatMap() 具有 _.values() :

    const data = [{"100":{"id":"100","name":"Test name 1"},"101":{"id":"101","name":"Test name 2"},"102":{"id":"102","name":"Test name 3"}}];
    
    const result = _.flatMap(data, _.values);
    
    console.log(result);
    <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js"></script>