JavaScript多维数组中过滤Name值为空条目的方法
解决JavaScript多维数组过滤Name为空条目的问题
问题分析
你给出的是一个三维数组,外层仅包裹了一层数组,真正的ID-Name条目都在rows[0]这个子数组里。原代码的问题在于:
- 错误地直接对最外层数组做过滤,而非目标条目数组
- 后续的
map和内层filter会删除空单元格,但我们需要的是移除整个Name为空的条目,而非单个单元格
正确实现代码
const rows = [ [ ["11300273", "Domestic Supplier"], ["11411110", "Plant Business Partner"], ["11910008", ""], ["54009145", "Slink"], ["9980000000", ""], ["9980000010", ""], ["JUSTINQ", "JUSTINQ Inc."] ] ]; // 先拿到内层条目数组,再过滤Name不为空的条目 const filtered = rows[0].filter(item => item[1] !== ""); console.log(filtered);
代码说明
rows[0]:获取到真正存储所有ID-Name条目的数组,解开外层多余的包裹filter(item => item[1] !== ""):遍历每个条目,判断第二个元素(Name)是否为空字符串,只保留Name非空的条目- 如果需要同时过滤Name为空白字符的情况,可改用
item[1].trim() !== ""
执行结果
过滤后会得到如下数组:
[ ["11300273", "Domestic Supplier"], ["11411110", "Plant Business Partner"], ["54009145", "Slink"], ["JUSTINQ", "JUSTINQ Inc."] ]
内容的提问来源于stack exchange,提问作者user1263981
相关产品推荐
相关产品推荐

