本文最后更新于421 天前,其中的信息可能已经过时,如有错误请发送邮件到1986413837@qq.com

题目规则
根据函数参数 imageCount 和 selectedText 与已提供 artDataArray 数组中的图片相关词语进行规则匹配,并返回匹配度最高的图片数组。最佳匹配的规则为,文本内容中包含对应图片 tag 的数量最多则为匹配度最高,放在数组前面,如果多张图片匹配度相同,则任意选择匹配到的图片


解题思路
1.由图知 tags 形式为字符串 并且带有’ 、’符号 需要进行处理
const keys = item.tags.split('、')
使用map遍历绘画数据数组 并对数组中每个元素(图片信息)进行处理
2.给每个图片信息添加count属性 count为用户输入文本与图片信息的匹配度 可以使用filter方法进行过滤选择
const count = keys.filter(v=>selectedText.includes(v)).length
3.返回添加了count属性的图片信息 并且根据count从大到小的顺序对图片信息进行排序
4.最后取数组中 imageCount 张图片进行展示即可
完整代码
function generateAndDisplayImages(imageCount, selectedText) {
let imgAry = [] // 定义最佳匹配的图片数组
// TODO:待补充代码
imgAry = artDataArray.map(item=>{
const keys = item.tags.split('、')
const count = keys.filter(v=>selectedText.includes(v)).length
return {...item,count}
}).sort((a,b)=> b.count - a.count).slice(0,imageCount)
//TODO:END
return imgAry;
}
原题链接