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

如何修改数组indexOfObj函数,从末尾开始查找匹配对象的索引

修改数组对象查找函数,从末尾匹配最后一项

没问题!要实现从数组末尾开始查找最后一个匹配的对象索引,只需要把遍历方向反过来就行,我帮你调整了代码:

Array.prototype.lastIndexOfObj = function(key, value) {
  // 从数组最后一位开始向前遍历
  for (var i = this.length - 1; i >= 0; i--) {
    if (this[i][key] === value) {
      return i; // 找到匹配项直接返回当前索引
    }
  }
  return -1; // 没找到返回-1
};

几点说明:

  • 我把函数名改成了lastIndexOfObj,这样和原生的lastIndexOf命名逻辑保持一致,更直观;如果还是想用你原来的命名,直接改回indexOfObj就行。
  • 注意你原代码里函数定义是indexOfObj,但调用写的是indexOfObject,这里要统一命名,避免调用报错。
  • 遍历逻辑改成从数组最后一个元素(this.length - 1)开始,逐个向前检查,找到第一个匹配的就返回,这样得到的就是最后一个符合条件的对象索引。

使用示例:

// 示例数组
const myArr = [
  { id: 1, name: "Alice" },
  { id: 2, name: "Bob" },
  { id: 3, name: "Alice" },
  { id: 4, name: "Charlie" }
];

// 查找name为"Alice"的最后一个对象索引
console.log(myArr.lastIndexOfObj("name", "Alice")); // 输出:2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:42:54