[英]Find all occurrences of each element of an array in another array in Javascript
[英]Find all urls for each array value
给定以下数组结构:
{ url: "www.site.com", ids: ["F20", "C10", "C05"] }, { url: "www.site.com/something", ids: ["F20", "C06", "C05"] }, { url: "www.site.com/somethingelse", ids: ["F21", "C12", "C05"] }
我正在尝试遍历数组并找到每个 id 的所有 url。 所以最终结果会将 id 值具有相同 url 的 url 分组:
例如 F20 会有www.site.com和www.site.com/something 。
数据结构最终将成为一个对象数组,其中每个 id 都有一个 url 数组,其中 id 存在。
我从基本的 for 循环开始,但坚持循环并检查与其关联的数组的每个值的 url,然后按 id 分组的最佳方式。
for(id of ids){ console.log(id) }
最终结果将是一个 id 列表,其中包含该 id 出现的所有关联 url。
您可以遍历输入数组,然后遍历每个输入元素的 id,并继续为相应的 id 添加 url。 例如
const input = [{ url: "www.site.com", ids: ["F20", "C10", "C05"] }, { url: "www.site.com/something", ids: ["F20", "C06", "C05"] }, { url: "www.site.com/somethingelse", ids: ["F21", "C12", "C05"] }]
const output = {}
input.forEach(obj=>{
const ids = obj.ids
if(ids && ids.length>0){
ids.forEach(id=>{
if(!output[id]){
output[id] = []
}
output[id].push(obj.url)
})
}
})
for(let id of Object.keys(output)){
console.log(`${id}:${JSON.stringify(output[id])}`)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.