不同长度数组对比后移除元素:分支ID匹配代码问题排查
排查数组匹配过滤问题的思路
首先得麻烦你把你写的代码贴出来呀!不过先给你梳理几个常见的坑,你可以先自己对照排查下:
- 遍历修改原数组的陷阱:如果你是在遍历原数组的同时直接删除元素,很容易因为数组长度变化导致元素被跳过。比如用正序
for循环删除时,后面的元素会前移,索引就乱了。建议要么倒序遍历,要么直接把符合条件的元素筛选到新数组里,别直接修改原数组。 - ID类型不匹配问题:确认下
admnuserbrnchs里存的ID是字符串还是数字?如果分支数组里的ID类型和它不一致(比如一个是"101",一个是101),用严格相等===判断就会不匹配,得先统一类型再比较。 - 筛选条件搞反:是不是把“保留匹配ID的分支”写成“移除匹配ID的分支”了?比如应该用
admnuserbrnchs.includes(branch.id),别不小心加了感叹号写成!includes。
给你个正确的示例参考:
假设你的分支数组是branches,每个元素带id属性,admnuserbrnchs是允许保留的ID数组:
// 生成新数组,只保留ID匹配的分支 const filteredBranches = branches.filter(branch => admnuserbrnchs.includes(branch.id)); // 如果需要替换原数组 branches = filteredBranches;
要是你贴出你的代码,我能更精准地帮你定位问题哦!
内容的提问来源于stack exchange,提问作者Jamshaid
相关产品推荐
相关产品推荐

