javascript - 谷歌脚本 : forEach to Array

标签 javascript google-apps-script

我正在尝试将返回值从 forEach 推送到一个数组。

现在结果在 Logger 中单独返回,例如

结果 1 结果 2

这就是我想要的,我只是不知道如何将这些结果返回到我可以在 forEach 函数之外使用的单个数组(因为这个函数是一个更大的函数的一部分).

有什么建议吗?我看了HERE并试图从下面开始工作。我在这里找到的其他结果是关于 PHP 的,我不明白。

urls.forEach(function(urlTest) {
    var htmls = UrlFetchApp.fetch(urlTest).getContentText();
    var reg = /text1boldblack\"\>U(.*?)\<\/div/g;
    var reg2 = /text1boldblack\"\>|\<\/div/g;
    var extract = htmls.match(reg);
    var string = String(extract);
    var listDivName = string.replace(/text1boldblack\"\>|\<\/div/g,'');

    var array = [];
    for (var i = 0; i < listDivName.length; ++i) {
    array.push(i);
    Logger.log(array);
    }

下面是 Logger.log(array); 当前返回的示例,这显然比我预期的两个结果要多。

[18-12-30 17:05:13:597 EST] U09 Girls 1 - Fall 2018
[18-12-30 17:05:13:597 EST] [0.0]
[18-12-30 17:05:13:598 EST] [0.0, 1.0]
[18-12-30 17:05:13:599 EST] [0.0, 1.0, 2.0]
[18-12-30 17:05:13:599 EST] [0.0, 1.0, 2.0, 3.0]
[18-12-30 17:05:13:600 EST] [0.0, 1.0, 2.0, 3.0, 4.0]
[18-12-30 17:05:13:600 EST] [0.0, 1.0, 2.0, 3.0, 4.0, 5.0]
[18-12-30 17:05:13:601 EST] [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0]
[18-12-30 17:05:13:602 EST] [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0]
[18-12-30 17:05:13:602 EST] [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0]
[18-12-30 17:05:13:603 EST] [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0]
[18-12-30 17:05:13:604 EST] [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0]
[18-12-30 17:05:13:604 EST] [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0]
[18-12-30 17:05:13:605 EST] [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0]
[18-12-30 17:05:13:606 EST] [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0]
[18-12-30 17:05:13:606 EST] [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0]

最佳答案

“我正在尝试将返回值从 forEach 推送到一个数组。”

ForEach 没有返回值,但是 map 有!

Map 的作用类似于 forEach,但返回值会创建一个新数组。

const resultArray = urls.map(function(urlTest) {
    var htmls = UrlFetchApp.fetch(urlTest).getContentText();
    var reg = /text1boldblack\"\>U(.*?)\<\/div/g;
    var reg2 = /text1boldblack\"\>|\<\/div/g;
    var extract = htmls.match(reg);
    var string = String(extract);
    var listDivName = string.replace(/text1boldblack\"\>|\<\/div/g,'');

    return listDivName;
}

// do sth with the array:
console.log(resultArray);

关于javascript - 谷歌脚本 : forEach to Array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53981768/

相关文章:

google-apps-script - Google 应用程序脚本 : email a spreadsheet as excel

javascript - 在 JavaScript 中删除项目并释放内存

javascript - 单击图库中的图像时前进光滑 slider (一页上有多个光滑 slider )

javascript - 如何 trim jsf xhtml 中的字符串?

javascript - 网络 Storm : debugging typescript

google-apps-script - Google Script 图表默认排除标题

php - 如何发布元素包含 'http://www.example.com?i=12&j=34' 等数据的 ajax 数据

javascript - 不允许在特定时间提交 Google 表单

google-apps-script - Google电子表格: How can I leave the Script Editor open in another tab after refreshing a spreadsheet

javascript - 如何将一列中的未知长度列表迭代到另一张工作表的列中