springboot和vue使用stream().map方法

1. 前端使用map方式返回对象List集合中某个属性的List集合

// this.multipleSelection--对象list集合,id--对象属性
let ids = this.multipleSelection.map(v => v.id)

2. 后端使用stream().map方式返回对象List集合中某个属性的List集合

public boolean deleteDictData(List<Long> id){
   LambdaQueryWrapper<DictType> queryWrapper = new LambdaQueryWrapper<>();
    queryWrapper.eq(DictType::getDeleteStatus,0);
    queryWrapper.in(DictType::getId,id);
    List<DictType> dictTypeList = this.list(queryWrapper);  // 获取对象List集合
    // 返回对象dictType属性集合
    List<String> collect = dictTypeList.stream().map(DictType::getDictType).collect(Collectors.toList());
    return dictDataService.updateDeleteStatusByDictType(collect);
}

3. 根据对象List某个字段筛选数据

public Result getMenuList(String name) {
    LambdaQueryWrapper<Menu> queryWrapper = new LambdaQueryWrapper<>();
    queryWrapper.eq(Menu::getDeleteStatus,0);
    if (StringUtils.isNotEmpty(name)){
        queryWrapper.like(Menu::getName,name);
    }
    // 查询所有数据
    List<Menu> list = list(queryWrapper);
    // 找出pid为null的一级菜单
    List<Menu> parentNodes = list.stream().filter(menu -> menu.getPid() == null).collect(Collectors.toList());
    // 找出一级菜单的子菜单
    for (Menu menuItem : parentNodes) {
        // 筛选所有数据中pid=父级id的数据就是二级菜单
        menuItem.setChildren(list.stream().filter(m -> menuItem.getId().equals(m.getPid())).collect(Collectors.toList()));
    }
    return Result.success(parentNodes);
}


4. 前端使用map和reduce统计总和

let arr = [1, 2, 3, 4, 5];
let sum = arr.reduce(function (prev, cur, index, arr) {
    console.log(prev, cur, index);
    return prev + cur;
});
console.log('arr:', arr, 'sum:', sum);
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐