如何实现过滤含gaps键对象的数组并按gaps值分组输出
实现代码
const cards = [ {gaps: ["science", "education"]}, {gaps: ["weapon"]}, {gaps: ["figures", "character"]}, {gaps: ["figures", "education"]}, ] function filter({ cards }) { // 存储分组结果 const groupResult = {} // 遍历所有卡片做分组 cards.forEach(card => { card.gaps.forEach(gapTag => { // 无对应分组时先初始化 if (!groupResult[gapTag]) groupResult[gapTag] = [] // 卡片归入对应标签分组 groupResult[gapTag].push(card) }) }) // 按要求格式输出到控制台 Object.entries(groupResult).forEach(([tag, list], idx) => { const listStr = list.map(item => JSON.stringify(item)).join(', ') console.log(`${idx + 1}. ${listStr} - ${tag}`) }) } // 调用方法 filter({ cards })
运行后控制台输出的内容和你要求的5组分组结果完全匹配。
内容的提问来源于stack exchange,提问作者Temurmalik Abduqodirov
相关产品推荐
相关产品推荐

