我正在查询DNS以检查给定域的MX记录并获得以下响应 - :
我正在使用Google Apps脚本UrlFetchApp
类,现在我想要的是创建一个只包含MX记录值的数组 - :
(例如 - [20 mx2.zoho.com,30 mx3.zoho.com,10 mx.zoho.com]
我该怎么做? 谢谢你的帮助。
到目前为止,我在这里
function mxLookup() {
var ss = SpreadsheetApp.getActive()
var sheet = ss.getSheetByName("domains")
var data = sheet.getDataRange().getValues()
var apiurl = "https://dns-api.org/MX/";
for (i=1; i<data.length; i++){
var domain = data[i][0]
var url = apiurl+domain
var response = UrlFetchApp.fetch(url).getContentText()
var json = JSON.parse(response);
}
答案 0 :(得分:1)
这是使用map
的完美用例(感谢@Łukasz)。
const
inputArray = [
{
"ttl" : 3600,
"type" : "MX",
"value" : "20 mx2.zoho.com.",
"name" : "domainname.com"
},
{
"name" : "domainname.com",
"value" : "30 mx3.zoho.com.",
"type" : "MX",
"ttl" : 3600
},
{
"ttl" : 3600,
"name" : "domainname.com",
"value" : "10 mx.zoho.com.",
"type" : "MX"
}
],
mxValues = inputArray.map(item => item.value),
mxValues2 = [];
for (var index=0; index<inputArray.length; index++) {
mxValues2.push(inputArray[index].value);
}
console.log(mxValues);
console.log(mxValues2);
答案 1 :(得分:1)
上面的答案并非完全错误,但由于ES6语法,它不适用于Apps脚本。
您可以使用地图功能编写它,如下所示:
var arr = json.map(function(each) {
return each.value;
});
Logger.log(arr);
您可以在应用脚本项目中的.html文件中使用ES6语法,但是,您无法在.gs文件中使用它。