问题描述
输入:
const urls = [
'www.google.com','www.yahoo.com','xyz.www.google.com','abc.xyz.www.google.com','google.com','yahoo.com','news.yahoo.com','abc.news.yahoo.com',];
categorize(urls);
上面的分类函数应该返回下面的输出。 例如,“www.google.com”出现在“www.google.com”、“xyz.www.google.com”、“abc.xyz.www.google.com”等中。 “google.com”出现在“google.com”、“www.google.com”、“xyz.www.google.com”、“abc.xyz.www.google.com”等中。
预期输出:
{
"google.com": 6,"yahoo.com": 5,"www.google.com": 4,"www.yahoo.com": 2,"news.yahoo.com": 2,"xyz.www.google.com": 3,"abc.news.yahoo.com": 1,"abc.xyz.www.google.com": 2,"com": 11
}
解决方法
您首先需要创建一个对象,例如 const categorized = {}
然后使用 for 循环(或 forEach)遍历 url。
对于每个网址,您需要找到所有可能的域。可能有一些很好的方法可以做到这一点。
对于每个域,如果对象尚不存在,则将其添加到对象中并将值设置为 1。如果该键已存在,则将其添加到值中。