如何使用Lodash获取路径中嵌套数组的最后一项?
用Lodash获取嵌套数组的最后一项
你可以通过嵌套调用_.last()和_.get()实现需求,这里提供两种实用写法:
方法1:嵌套函数调用
适合追求代码紧凑的场景,同时通过_.get的默认值处理空数组的边界情况:
dateSeen: _.last(_.get(_.last(_.get(record, 'availableDates', [])), 'dateSeen', []))
- 先通过
_.get(record, 'availableDates', [])获取availableDates数组,为空时返回空数组 - 用
_.last()取这个数组的最后一项 - 再用
_.get(..., 'dateSeen', [])拿到该元素的dateSeen数组,为空时同样返回空数组 - 最后用
_.last()取dateSeen数组的最后一项
方法2:Lodash链式调用
可读性更强,步骤逻辑更清晰:
dateSeen: _(record) .get('availableDates', []) .last() .get('dateSeen', []) .last() .value()
- 用
_(record)开启链式调用 - 依次完成「获取availableDates数组→取最后一项→获取dateSeen数组→取最后一项」的操作
- 最后用
.value()拿到最终结果
两种写法都能安全获取嵌套数组的最后一项,同时避免数组为空时触发报错。
内容的提问来源于stack exchange,提问作者fxfuture
相关产品推荐
相关产品推荐

