如何拆分含嵌套Fields的对象数组为保留GroupName的两个数组
拆分分组对象数组并保留分组名称
你需要拆分groupItems数组为两个新数组,分别保留每组中Columns为null和非null的Fields元素,同时保留对应的GroupName。之前的代码只返回了过滤后的Fields数组,丢失了分组信息,原因是你在map里直接返回了filter的结果,没有保留原对象的GroupName。
解决方案
通过map遍历原数组时,构造包含GroupName和过滤后Fields的新对象即可:
生成Array_One(保留Columns为null的Fields)
const Array_One = groupItems.map(item => ({ GroupName: item.GroupName, Fields: item.Fields.filter(field => field.Columns === null) }));
生成Array_Two(保留Columns非null的Fields)
const Array_Two = groupItems.map(item => ({ GroupName: item.GroupName, Fields: item.Fields.filter(field => field.Columns !== null) }));
可选优化:移除空Fields的分组
如果某些分组过滤后Fields为空数组,你可以额外添加filter步骤移除这些分组:
// 处理Array_One const Array_One = groupItems .map(item => ({ GroupName: item.GroupName, Fields: item.Fields.filter(field => field.Columns === null) })) .filter(group => group.Fields.length > 0); // 处理Array_Two const Array_Two = groupItems .map(item => ({ GroupName: item.GroupName, Fields: item.Fields.filter(field => field.Columns !== null) })) .filter(group => group.Fields.length > 0);
这样就能得到你期望的两个数组结构,每个元素都保留了对应的GroupName和过滤后的Fields集合。
内容的提问来源于stack exchange,提问作者vinod persistent
相关产品推荐
相关产品推荐

