微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用下一行执行与forEach类似的操作?

如何解决如何使用下一行执行与forEach类似的操作?

如果我使用以下代码

let original = "http://www.spur-g-shop.de/index.PHP?action=buy_Now&BUYproducts_id=56&
http://associations.beauvais.fr/en-un-clic/index.PHP?option=com_fabrik&view=list&listid=4&Itemid=520&asso_annuaireweb___id_soustheme_raw=40&sous_theme___ID_Theme=SPORTS&resetfilters=1
http://laptopbank.net/product_detail.PHP?detail_id=B075FLBJV7
https://www.music-scores.com/sheet-music/freeinstrument.PHP?instrument=Alto%20Sax
http://www.traxjo.com/index.PHP?PageType=2&MenuID=1&Sub=1&Lang=1
http://www.bizfocus.co.kr/admin/bbs/down.PHP?code=data&idx=8928&no=1
http://www.vivitekthailand.com/en/Product_view.PHP?ProductId=115&CategoryId=7
http://www.fsrm.ch/doc/c474.PHP?lang=e&id=474
https://catalog.prm-catalog.com/index.PHP?lang=tw&ID=18&CatalogID=2839
https://astacology.org/AboutCrayfish.asp?uid=Guest"

假设每行都是\ n当然

然后运行以下代码

let dorks = original.split('/').pop().split('?')[0];
console.log(dorks)

它仅返回:

index.PHP(针对第一个网址)

我怎样才能使它返回每一行?

解决方法

这里有一个forEach会为您完成的事情:

    //note the use of a backtick here to allow your new line characters in string
    let original = `http://www.spur-g-shop.de/index.php?action=buy_now&BUYproducts_id=56&
    http://associations.beauvais.fr/en-un-clic/index.php?option=com_fabrik&view=list&listid=4&Itemid=520&asso_annuaireweb___id_soustheme_raw=40&sous_theme___ID_Theme=SPORTS&resetfilters=1
    http://laptopbank.net/product_detail.php?detail_id=B075FLBJV7
    https://www.music-scores.com/sheet-music/freeinstrument.php?instrument=Alto%20Sax
    http://www.traxjo.com/index.php?PageType=2&MenuID=1&Sub=1&Lang=1
    http://www.bizfocus.co.kr/admin/bbs/down.php?code=data&idx=8928&no=1
    http://www.vivitekthailand.com/en/Product_view.php?ProductId=115&CategoryId=7
    http://www.fsrm.ch/doc/c474.php?lang=e&id=474
    https://catalog.prm-catalog.com/index.php?lang=tw&ID=18&CatalogID=2839
    https://astacology.org/AboutCrayfish.asp?uid=Guest`

    //split on newline,and then for each URL,grab everything before the ? and trim extra spaces
    original.split("\n").forEach((url)=> console.log(url.split("?")[0].replace(/ /g,'')));

,
let original = `http://www.spur-g-shop.de/index.php?action=buy_now&BUYproducts_id=56&
http://associations.beauvais.fr/en-un-clic/index.php?option=com_fabrik&view=list&listid=4&Itemid=520&asso_annuaireweb___id_soustheme_raw=40&sous_theme___ID_Theme=SPORTS&resetfilters=1
http://laptopbank.net/product_detail.php?detail_id=B075FLBJV7
https://www.music-scores.com/sheet-music/freeinstrument.php? instrument=Alto%20Sax
http://www.traxjo.com/index.php?PageType=2&MenuID=1&Sub=1&Lang=1
http://www.bizfocus.co.kr/admin/bbs/down.php?code=data&idx=8928&no=1
http://www.vivitekthailand.com/en/Product_view.php?ProductId=115&CategoryId=7
http://www.fsrm.ch/doc/c474.php?lang=e&id=474
https://catalog.prm-catalog.com/index.php?lang=tw&ID=18&CatalogID=2839
https://astacology.org/AboutCrayfish.asp?uid=Guest`

original.split(/\s/).map(w => w.split('?')[0])
/* returns [
     "http://www.spur-g-shop.de/index.php","http://associations.beauvais.fr/en-un-clic/index.php","http://laptopbank.net/product_detail.php","https://www.music-scores.com/sheet-music/freeinstrument.php","http://www.traxjo.com/index.php","http://www.bizfocus.co.kr/admin/bbs/down.php","http://www.vivitekthailand.com/en/Product_view.php","http://www.fsrm.ch/doc/c474.php","https://catalog.prm-catalog.com/index.php","https://astacology.org/AboutCrayfish.asp"
   ] */

/\s/是一个可检测所有空白的正则表达式。通过在所有空格的位置分割从字符串中创建数组之后,您可以按照已经完成的'?'再次分割每个值。

确保字符串的方案与之完全相同。否则,该脚本可能会引发错误。

,

我不确定您希望如何显示比赛,但可以避免循环:

locationManager(_ manager: CLLocationManager,didRangeBeacons beacons: [CLBeacon],in region: CLBeaconRegion)

,

有几种获取所需内容的方法。假设对代码的更改最少,那么您的问题就是将逻辑应用于多行。

因此,最简单的方法是使用新行作为分隔符来分割字符串,然后将您已经编写的代码应用于每个字符串:

let s = `http://www.spur-g-shop.de/index.php?action=buy_now&BUYproducts_id=56&
http://associations.beauvais.fr/en-un-clic/index.php?option=com_fabrik&view=list&listid=4&Itemid=520&asso_annuaireweb___id_soustheme_raw=40&sous_theme___ID_Theme=SPORTS&resetfilters=1
http://laptopbank.net/product_detail.php?detail_id=B075FLBJV7
https://www.music-scores.com/sheet-music/freeinstrument.php?instrument=Alto%20Sax
http://www.traxjo.com/index.php?PageType=2&MenuID=1&Sub=1&Lang=1
http://www.bizfocus.co.kr/admin/bbs/down.php?code=data&idx=8928&no=1
http://www.vivitekthailand.com/en/Product_view.php?ProductId=115&CategoryId=7
http://www.fsrm.ch/doc/c474.php?lang=e&id=474
https://catalog.prm-catalog.com/index.php?lang=tw&ID=18&CatalogID=2839
https://astacology.org/AboutCrayfish.asp?uid=Guest`;

let dorks = s.split("\n").map(url => url.split('/').pop().split('?')[0]);

console.log(dorks)

请注意使用template literals以便轻松获得新行。

如您所见,主要逻辑与您编写的完全相同(url.split("/").pop().split("?")[0]),它只是使用map应用于每一行。

您可以使用正则表达式解决此问题,但是我认为这对您了解如何在多行上应用相同的逻辑会有所帮助(因此,如果逻辑更改。

,
let mapped = original.split('\n').map(o => o.split('/').pop().split('?')[0])

工作正常,我在新行拆分并映射了函数!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。