我收到两个IP地址阵列,这些阵列的格式不同。应该从地址数组中删除IP数组中的任何值 - 但只有在IP匹配完全相同的情况下。我写了下面,但问题是,例如,192.168.0.1将匹配192.168.0.11,然后从地址数组中删除192.168.0.11,这是不是一个有效的结果。地址数组需要以与接收到的格式相同的格式返回。请帮忙吗? :)尝试匹配两个数组中的值,并且只在部分值存在完全匹配时才删除
var addresses = [{
Value : '192.168.0.11'
}, {
Value : '52.210.29.181'
}, {
Value : '52.210.128.97'
}
];
var IPs = ['192.168.0.1', '52.210.128.97'];
console.log('Before:', addresses);
for (var x = 0; x < IPs.length; x++) {
for (var key in addresses) {
var address = JSON.stringify(addresses[key]);
if (address.indexOf(IPs[x]) > -1){ //if the IP is a substr of address
console.log('matched, so delete', addresses[key]);
var index = addresses.indexOf(addresses[key]); //find the index of IP to be deleted then delete it
addresses.splice(index, 1);
}
}
}
console.log('After', addresses);
地址是你似乎是治疗对象的字符串数组的字符串。尝试地址==(或可能是===)IP [x]是否合乎逻辑? –