JavaScript如何获取筛选后嵌套数组中匹配元素的索引
实现逻辑
要拿到符合条件的tabs项索引,按以下步骤处理即可:
- 先在源数据数组中,筛选出
categoryName和传入参数完全匹配的分类对象 - 在匹配到的分类的
tabs数组中,查找header和传入参数完全匹配的项的下标 - 增加边界判断:如果没找到对应分类、或者分类下没有对应header的项,统一返回
-1作为未匹配的标识
完整代码实现
function findTargetTabIndex(sourceData, targetCategoryName, targetHeader) { // 匹配目标分类 const targetCategory = sourceData.find(item => item.categoryName === targetCategoryName) if (!targetCategory) return -1 // 查找对应tab的索引 return targetCategory.tabs.findIndex(tabItem => tabItem.header === targetHeader) } // 示例测试 const data = [ { categoryName: "Mexican Food", tabs: [ { header: "Nachos" }, { header: "Tacos" } ] } ] const categoryName = "Mexican Food" const header = "Tacos" const Output = findTargetTabIndex(data, categoryName, header) console.log(Output)
运行结果
传入示例参数时,最终Output的值为1,和预期结果一致。
内容的提问来源于stack exchange,提问作者Aly
相关产品推荐
相关产品推荐

