SOURCE

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 命令行工具 X clear

                    
>
console