JS遍历对象筛选属性时如何对list字段新增非空过滤
实现方案
你可以通过以下两种常用方式添加list非空过滤逻辑:
方式1:循环前提前过滤无效项
先筛选出list非空的数组项,再进行后续遍历处理,避免无效循环:
const table = team.table; // 过滤掉list为null/undefined的项 const validTableList = table.filter(item => item.list != null); for (let i = 0; i < validTableList.length; i++) { const values = { type: validTableList[i].list.players .filter((a) => a.awards != null) .map((a) => a.awards.type) .join(" "), }; // 后续values处理逻辑 }
方式2:循环内加判断跳过无效项
如果不想修改原遍历数组,可以在循环内部加判断,结合可选链操作符避免属性访问报错,写法更简洁:
const table = team.table; for (let i = 0; i < table.length; i++) { // list为null/undefined时直接跳过当前项 if (table[i].list == null) continue; const values = { // 可选链+空值合并运算符保证异常场景下返回空字符串 type: table[i].list.players ?.filter((a) => a.awards != null) ?.map((a) => a.awards.type) ?.join(" ") ?? "", }; // 后续values处理逻辑 }
内容的提问来源于stack exchange,提问作者Vishal Mistry
相关产品推荐
相关产品推荐

