【问题标题】:Can you put a string into an array using something other than .push?您可以使用 .push 以外的方式将字符串放入数组中吗?
【发布时间】:2019-10-11 13:55:12
【问题描述】:

我想做的是我必须从谷歌图片中获取域结果。我正在使用 GM_xmlhttpRequest 获取信息,然后遍历它们并使用 .push() 放入数组中。 我遇到的问题是我必须计算结果的数量,如果它低于设定的数量,我必须进行另一次搜索等等。因此,每次使用 .push 将项目添加到数组时,它都会触发我的 if 语句。

       GM_xmlhttpRequest({
            method:   "GET",
            url:      link,
            onload: function(r) {
                var gurl=[];
                for (i=0; i<10; i++){
                    gurl.push($(r.responseText).find('div.nJGrxf.FnqxG').eq(i).text());
                    let editedList = [...new Set(gurl)];    
                }
                  if (editedList.length < 10){
                    window.open(nextSearch)
                    }
            }
        });`

我已经尝试了几个小时来找到更好的方法,任何帮助都会非常有用。

【问题讨论】:

  • 这个方法有什么问题?
  • 是的,你可以,但它可能不是你想要的。你能解释更多吗?
  • 每次将 url 添加到数组时都会改变长度,所以上面的代码基本上会打开 10 个新窗口。我尝试将 if 语句包装在 setTimeOut 函数中,希望只获得最终长度,但效果相同。

标签: javascript jquery arrays


【解决方案1】:

您可以使用 ES6 扩展运算符编写以下行

gurl = [...$(r.responseText).find('div.nJGrxf.FnqxG').eq(i).text()]

【讨论】:

    猜你喜欢
    • 2015-04-09
    • 2020-12-10
    • 1970-01-01
    • 2010-09-06
    • 2017-11-22
    • 2020-06-24
    • 2018-05-02
    • 1970-01-01
    • 2018-08-31
    相关资源
    最近更新 更多