代码之家  ›  专栏  ›  技术社区  ›  Akash Kumar Verma

在洛达斯有条件的人群中

  •  0
  • Akash Kumar Verma  · 技术社区  · 5 年前
    [ { id: 4,
        category_id: 7,
        user_id: 2,
        title: '',
        image1: '15717679702861gohz24vrk2262fov.jpg',
        image2: '15717679702891gohz24vrk2262fox.jpg',
        image3: '15717679702911gohz24vrk2262foz.jpg',
        image4: '15717679702921gohz24vrk2262fp0.jpg',
        image5: '15717679702931gohz24vrk2262fp1.jpg',
        status: 2,
        created_at: 2019-10-22T18:12:50.000Z,
        updated_at: 2019-10-22T18:12:50.000Z,
        item_id: 1,
        category_field_id: 4,
        value: 'Iphone',
        is_title: 1,
        is_description: 0 },
      { id: 3,
        category_id: 7,
        user_id: 2,
        title: '',
        image1: '15717679702861gohz24vrk2262fov.jpg',
        image2: '15717679702891gohz24vrk2262fox.jpg',
        image3: '15717679702911gohz24vrk2262foz.jpg',
        image4: '15717679702921gohz24vrk2262fp0.jpg',
        image5: '15717679702931gohz24vrk2262fp1.jpg',
        status: 2,
        created_at: 2019-10-22T18:12:50.000Z,
        updated_at: 2019-10-22T18:12:50.000Z,
        item_id: 1,
        category_field_id: 3,
        value: 'Other',
        is_title: 0,
        is_description: 0 },
      { id: 11,
        category_id: 7,
        user_id: 2,
        title: '',
        image1: '15718960965161gohz24rzk24acmit.jpg',
        image2: '15718960965181gohz24rzk24acmiu.jpg',
        image3: '15718960965191gohz24rzk24acmiv.jpg',
        image4: '15718960965201gohz24rzk24acmiw.jpg',
        image5: '15718960965221gohz24rzk24acmiy.jpg',
        status: 0,
        created_at: 2019-10-24T05:48:16.000Z,
        updated_at: 2019-10-24T05:48:16.000Z,
        item_id: 3,
        category_field_id: 3,
        value: 'Other',
        is_title: 0,
        is_description: 0 } ]
    

    我想按项目ID按此分组,但只按用户输入的特定长度(搜索中按用户输入的数目)分组 假设长度为2,则最终结果中只包含两个对象的项;

    喜欢

    {
     1: [{ id: 4,
        category_id: 7,
        user_id: 2,
        title: '',
        image1: '15717679702861gohz24vrk2262fov.jpg',
        image2: '15717679702891gohz24vrk2262fox.jpg',
        image3: '15717679702911gohz24vrk2262foz.jpg',
        image4: '15717679702921gohz24vrk2262fp0.jpg',
        image5: '15717679702931gohz24vrk2262fp1.jpg',
        status: 2,
        created_at: 2019-10-22T18:12:50.000Z,
        updated_at: 2019-10-22T18:12:50.000Z,
        item_id: 1,
        category_field_id: 4,
        value: 'Iphone',
        is_title: 1,
        is_description: 0 },
      { id: 3,
        category_id: 7,
        user_id: 2,
        title: '',
        image1: '15717679702861gohz24vrk2262fov.jpg',
        image2: '15717679702891gohz24vrk2262fox.jpg',
        image3: '15717679702911gohz24vrk2262foz.jpg',
        image4: '15717679702921gohz24vrk2262fp0.jpg',
        image5: '15717679702931gohz24vrk2262fp1.jpg',
        status: 2,
        created_at: 2019-10-22T18:12:50.000Z,
        updated_at: 2019-10-22T18:12:50.000Z,
        item_id: 1,
        category_field_id: 3,
        value: 'Other',
        is_title: 0,
        is_description: 0 }
        ]
    }
    
    2 回复  |  直到 5 年前
        1
  •  1
  •   Buddy    5 年前

    默认情况下,lodash不提供所需的功能。

    相反,你可以尝试组合 _groupBy _pickBy 功能。

    var groupedItems = _.groupBy(items, 'item_id');
    
    var userSearchLength = 2;
    
    var filteredGrouping = _.pickBy(groupedItems, function(value, key) {
      return value.length == userSearchLength;
    });
    
        2
  •  1
  •   Pavan    5 年前
    const userInputNumber = 2;
    let grouped =_groupBy(obj,(o)=> o.item_id)
    Object.keys(grouped).forEach(item_id=> {
     if(grouped[item_id].length !== userInputNumber){
       delete grouped[item_id];
     }
    })
    

    必须先分组,然后检查并删除没有所需数组长度的组。

        3
  •  0
  •   Sreejith Ms    5 年前

    我希望这对你有帮助。

    你可以先 数据然后 滤波器 你需要的数据。

    const givenLength = 2;
    const groupData =_.groupBy(data,(o)=> o.item_id);
    const filtered = _.filter(groupData, (o) => o.length === givenLength );