gpt4 book ai didi

javascript - 如何根据 node.js 中的每个键验证多值字典中的值?

转载 作者:行者123 更新时间:2023-12-02 23:04:50 25 4
gpt4 key购买 nike

我有以下带有多个值的字典,在循环迭代时,我需要验证这些值中的任何一个是否分别等于 url。


console.log("Hello World")


const dns =require('dns')

//Verify the status of the url

function verify_URL(url_list){

for(url in url_list) {

dns.lookup(url, function(err, result){

if (result == url_list[url][0]){

console.log("Url equal to 1",url, url_list[url][0] );

}
else if(result == url_list[url][1]){
console.log("Url equal to 2", url, url_list[url][1]);


}
else {
console.log("Url is not accesable and server is down", url)

}

})


}
}

var dic = {'facebook.com':["157.240.25.35","157.240.25.36"],'google.com': ["172.217.160.142","172.217.160.143"]}

verify_URL(dic)




预计:我需要一一获取每个url的结果,在本例中,可能如下

网址等于 1 facebook.com 157.240.25.35网址等于 1 google.com 172.217.160.142

实际;在结果中我得到以下值

网址等于 1 google.com 172.217.160.142网址无法访问且服务器已关闭 google.com

感谢是否有人可以提供帮助?

谢谢

最佳答案

您在 for...in 循环中缺少 let 关键字。

console.log("Hello World")


const dns =require('dns')

//Verify the status of the url

function verify_URL(url_list){

for(let url in url_list) {

dns.lookup(url, function(err, result){

if (result == url_list[url][0]){

console.log("Url equal to 1",url, url_list[url][0] );

}
else if(result == url_list[url][1]){
console.log("Url equal to 2", url, url_list[url][1]);


}
else {
console.log("Url is not accesable and server is down", url)

}

})


}
}

var dic = {'facebook.com':["157.240.25.35","157.240.25.36"],'google.com': ["172.217.160.142","172.217.160.143"]}

verify_URL(dic)

此外,请注意,在大多数情况下,您当前针对两个 IP 检查返回的 dns 查找的算法可能会失败,因为 facebook 和 google 有更多的 IP,并且您收到的特定 IP 不在其中的可能性很高。您当前的列表。

您可以做的是为每个域创建一个包含更多 IP 的数组,并对其进行循环以检查结果,而不是静态检查第一个和第二个元素。

关于javascript - 如何根据 node.js 中的每个键验证多值字典中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57638439/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com