关于寻找数组中相同数据

148 阅读1分钟

今天在某qq群里帮助朋友解决了一个小问题,

http://3.34.254.250:8080/extractions/54/calls/analyses http://3.34.254.250:8080/extractions/55/calls/analyses http://3.34.254.250:8080/extractions/56/calls/analyses 用这三个接口的数据 总结出一个共同联系人的表格

let address1 = 'http://3.34.254.250:8080/extractions/54/calls/analyses'
let address2 = 'http://3.34.254.250:8080/extractions/55/calls/analyses'
let address3 = 'http://3.34.254.250:8080/extractions/56/calls/analyses'
let ourRequest = new XMLHttpRequest;
let ourData=[];
let count = 0
let samenumber1=[]
let result = []
ourRequest.onreadystatechange = function () {
    if (ourRequest.readyState==4 && ourRequest.status==200) {
        ourData.push( JSON.parse(ourRequest.responseText));
    }
}

ourRequest.open('GET', address1,false);
ourRequest.send();
ourRequest.open('GET', address2,false);
ourRequest.send();
ourRequest.open('GET', address3,false);
ourRequest.send();
let [arr1,arr2,arr3]=ourData
// 1和2先比较
arr1.map(x=>{
    arr2.map(y=>{
        if(x.number===y.number){
            samenumber1.push(y.number)
        }
    })
})
arr3.map(z=>{
    samenumber1.forEach(item=>{
        if(z.number === item){
            result.push(z.number)
        }
    }
    )

})

这是我的解决方案,先比较前两个接口的数据,然后再和第三个比较 由于是临时问题,我懒得引入库了,所以顺便练习了一下XML请求,考虑到复用性,这个代码还有继续封装的潜力,还在思考中。