let arr = [
{ "input": ["atif", "btif"], "output": ["a.shp", "b.shp"] },
{ "input": ["btif", "ctif"], "output": ["b.shp", "c.shp"] }
]
let key=[]
for(let j=0;j<arr.length;j+=1){
for(let i=0;i<arr[j].input.length;i+=1){
key.push(arr[j].input[i])
}
}
key=[...new Set(key)]
console.log(key)
let IO={}
for(let i=0;i<key.length;i+=1){
IO[key[i]]=[]
}
console.log("IO",IO)
for(let i=0;i<arr.length;i+=1){
for(let j=0;j<arr[i].input.length;j+=1){
if(IO[arr[i].input[j]].length===0){
for(let k=0;k<arr[i].output.length;k+=1){
IO[arr[i].input[j]].push(arr[i].output[k])
}
}else{
for(let k=0;k<arr[i].output.length;k+=1){
IO[arr[i].input[j]].push(arr[i].output[k])
}
}
}
}
console.log(IO)
for(let item in IO){
IO[item]=[...new Set(IO[item])]
}
console.log(IO)
console