【发布时间】:2016-12-28 05:56:03
【问题描述】:
我收到了两个格式不同的 IP 地址数组。 IPs 数组中的任何值都应该从地址数组中删除 - 但前提是 IPs 完全匹配。我已经写了下面的内容,但问题是,例如,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);
【问题讨论】:
-
address 是一个字符串,您似乎将其视为字符串数组。尝试地址==(或者可能===)IP [x] 是否不合逻辑?
标签: javascript arrays node.js string-matching