求可迭代生成指定分组格式数组的JavaScript代码
按分类分组字符串的迭代实现方案
需求概述
- 输入字符串:
HAMILTON.Angelica, WICKED.Glinda, HAMILTON.Eliza, HAMILTON.AndPeggy, WICKED.Elphaba - 预期输出:按点号前缀分类,生成
HAMILTON=[{Angelica, Eliza, AndPeggy}]、WICKED=[{Glinda, Elphaba}]形式的分组结构 - 核心要求:迭代处理每个条目,动态创建分类数组并添加对应子项
JavaScript 实现代码
// 原始输入字符串 const input = "HAMILTON.Angelica, WICKED.Glinda, HAMILTON.Eliza, HAMILTON.AndPeggy, WICKED.Elphaba"; // 用于存储分组结果的对象 const groupedData = {}; // 拆分并遍历每个条目 input.split(", ").forEach(entry => { // 拆分分类名和子项 const [category, item] = entry.split("."); // 若分类不存在则初始化空数组 if (!groupedData[category]) { groupedData[category] = []; } // 将子项推入对应分类数组 groupedData[category].push(item); }); // 按要求格式输出结果 Object.entries(groupedData).forEach(([cat, items]) => { console.log(`${cat}=[{${items.join(", ")}}]`); });
逻辑拆解
- 拆分输入:用
,将原始字符串分割为独立的分类.子项条目数组 - 遍历处理:逐个处理每个条目,通过
.拆分出分类名和子项内容 - 动态建组:检查目标对象中是否存在该分类数组,不存在则创建空数组
- 添加子项:将当前子项添加到对应分类的数组中
- 格式输出:遍历分组结果,按指定格式打印每个分类及其子项列表
内容的提问来源于stack exchange,提问作者leenmanwelmeerunduh
相关产品推荐
相关产品推荐

