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

JavaScript如何获取对象数组中@KAV为1的元素对应的前一项元素

实现方案

你之前的写法只能获取单个索引对应的前一项,没有遍历数组筛选所有符合@KAV="1"的元素,也没有做边界校验,因此无法得到完整的目标结果。

可以通过遍历数组同时匹配条件、收集符合要求的前一项实现需求:

const finalArray = []
// 遍历数组同时获取当前元素索引
kavArray.forEach((currentItem, currentIndex) => {
  // 两个校验条件:当前元素@KAV为1、当前元素不是数组第一项(避免索引越界)
  if (currentItem['@KAV'] === '1' && currentIndex > 0) {
    // 将当前元素的前一项推入结果数组
    finalArray.push(kavArray[currentIndex - 1])
  }
})

如果你偏好链式调用写法,也可以用reduce实现:

const finalArray = kavArray.reduce((result, currentItem, currentIndex) => {
  if (currentItem['@KAV'] === '1' && currentIndex > 0) {
    result.push(kavArray[currentIndex - 1])
  }
  return result
}, [])

拿你提供的示例数组运行以上代码,最终得到的finalArray会包含索引为2、4、6的三个对象,和你的需求完全匹配。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 05:27:03