如何修改Lodash代码获取数组前5个和最后两个元素
代码修改方案:合并数组前5项与最后2项并映射处理
原代码功能:从PROJECT_STAGE数组中提取前5个元素,映射为{value, label}结构后赋值给this.listSelectProjectStages。
修改后代码实现需求(同时获取前5项和最后2项,合并后映射):
// 先获取完整的PROJECT_STAGE数组 const projectStages = _.values(_.get(map, 'PROJECT_STAGE', [])); // 提取前5项和最后2项并合并 const targetStages = [...projectStages.slice(0, 5), ...projectStages.slice(-2)]; // 映射为目标结构并赋值 this.listSelectProjectStages = _.map(targetStages, (e) => ({ value: e?.name, label: e?.label, }));
修改说明:
- 单独提取
projectStages变量,避免重复调用_.values和_.get,提升可读性与性能 - 使用
slice(0, 5)获取前5个元素,slice(-2)直接获取数组最后2个元素(若数组长度不足2,会返回现有全部剩余元素) - 通过扩展运算符
...合并两个子数组,逻辑清晰直观(也可使用Lodash的_.concat(firstFive, lastTwo)实现合并) - 统一对合并后的数组做映射处理,减少重复的映射逻辑
内容的提问来源于stack exchange,提问作者Thanzeer Salim
相关产品推荐
相关产品推荐

