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

如何在JavaScript的嵌套对象数组中根据bookingid搜索匹配对象?

解决嵌套数组中按多个bookingid搜索对象的问题

你的问题在于原代码用了find方法,它只会返回第一个满足条件的子数组,而不是遍历所有子数组里的每一个对象,而且也没处理searchValue里的多个ID值。咱们来一步步修正,实现你要的效果:

步骤分析

  1. 首先得把searchValue这个字符串转成数字数组,因为你的bookingid是数字类型,这样匹配的时候不会有类型不一致的问题。
  2. 遍历嵌套数组里的每一个对象,检查它的bookingid是否在目标ID数组里,符合条件的就加入结果数组。

简洁实现方案(用flat+filter)

这种方法利用数组的内置方法,代码更简洁:

let bookingArr = [
  [{ name: "user 1", bookingid: 10, product: "ab" }, { name: "user 1", bookingid: 10, product: "cd" } ],
  [{ name: "user 2", bookingid: 11, product: "ui" }, { name: "user 1", bookingid: 10, product: "ef" } ],
  [{ name: "user 3", bookingid: 12, product: "ui" }, { name: "user 4", bookingid: 13, product: "ef" } ]
];
var searchValue = "10,11";

// 把搜索字符串分割并转成数字数组
const targetBookingIds = searchValue.split(',').map(id => parseInt(id, 10));

// 先展开嵌套数组为一维,再筛选出匹配的对象
const FOUND = bookingArr.flat().filter(obj => targetBookingIds.includes(obj.bookingid));

console.log(FOUND);

直观实现方案(双重循环)

如果你觉得内置方法不好理解,用双重循环更直观,适合新手:

let bookingArr = [
  [{ name: "user 1", bookingid: 10, product: "ab" }, { name: "user 1", bookingid: 10, product: "cd" } ],
  [{ name: "user 2", bookingid: 11, product: "ui" }, { name: "user 1", bookingid: 10, product: "ef" } ],
  [{ name: "user 3", bookingid: 12, product: "ui" }, { name: "user 4", bookingid: 13, product: "ef" } ]
];
var searchValue = "10,11";

const targetBookingIds = searchValue.split(',').map(id => parseInt(id, 10));
const FOUND = [];

// 外层循环遍历每个子数组
for (const subArray of bookingArr) {
  // 内层循环遍历子数组里的每个对象
  for (const bookingObj of subArray) {
    // 检查当前对象的bookingid是否在目标列表中
    if (targetBookingIds.includes(bookingObj.bookingid)) {
      FOUND.push(bookingObj);
    }
  }
}

console.log(FOUND);

两种方法运行后都会输出你预期的结果:

[
  { name:"user 1", bookingid:10, product: "ab" },
  { name:"user 1", bookingid:10, product: "cd" },
  { name:"user 2", bookingid:11, product: "ui" },
  { name:"user 1", bookingid:10, product: "ef" }
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 12:47:43