You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用jQuery按条件获取数组对象中最新或最后一个元素的值

问题根因

你用到的Array.prototype.find()原生方法默认是从数组头部往尾部遍历,匹配到第一个满足条件的元素就直接返回、终止遍历,所以永远只能拿到第一个符合要求的Ravi对应的日期,拿不到最后一个。

解决方案

方案1:先筛选所有匹配项再取最后一位(易理解,代码量少)

先通过filter把所有Name为Ravi的元素筛选出来,再直接取结果数组的最后一项即可:

// 筛选所有匹配的元素
const matchedList = arryObj.filter(item => item.Name === 'Ravi')
if (matchedList.length > 0) {
  // 取最后一个匹配项的访问日期
  const VisitDate = matchedList[matchedList.length - 1].VisitingDate
  // 兼容现代浏览器也可以写成 matchedList.at(-1).VisitingDate
}

方案2:用jQuery的$.grep方法筛选(符合jQuery实现要求)

如果你习惯用jQuery的工具方法,可以用$.grep做筛选,逻辑和上面一致:

const matchedList = $.grep(arryObj, function(item) {
  return item.Name === 'Ravi'
})
if (matchedList.length) {
  const VisitDate = matchedList[matchedList.length - 1].VisitingDate
}

方案3:倒序遍历(性能最优,适合数组量大的场景)

直接从数组最后一位开始往前找,匹配到第一个符合条件的元素就终止遍历,不需要遍历整个数组:

let VisitDate = null
for (let i = arryObj.length - 1; i >= 0; i--) {
  if (arryObj[i].Name === 'Ravi') {
    VisitDate = arryObj[i].VisitingDate
    break
  }
}
// 后续直接判断VisitDate是否有值即可

内容的提问来源于stack exchange,提问作者sekhar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 16:42:04