我有一个功能
const output = {}
sites.forEach(obj=>{
const ids = obj.ids
if(ids && ids.length>0){
ids.forEach(id=>{
if(!output[id]){
output[id] = []
}
output[id].push(obj.url);
});
}
});
fs.writeFileSync('cleanedData.json', JSON.stringify(output));
获取以下数据:
{
url: "www.site.com",
ids: ["F20", "C10", "C05"]
},
{
url: "www.site.com/something",
ids: ["F20", "C05", "C10"]
},
{
url: "www.site.com/somethingelse",
ids: ["F20", "C12", "C05"]
}
并对其进行转换,以便我有一个包含所有id和具有该id的所有URL的列表:
{
"F20": [
"www.site.com",
"www.site.com/something",
"www.site.com/somethingelse"
]
}, {
"C10": [
"www.site.com",
"www.site.com/something"
]
}, {
"C12": [
"www.site.com/somethingelse"
]
}, {
"C05": [
"www.site.com",
"www.site.com/something",
"www.site.com/somethingelse"
]
}
我可以使用
console.log(Object.values(output).map(id => id.length))
但我不知道如何将其作为forEach的一部分,所以我在每个对象中都有一个键/值来显示数组的长度。