如何解决如何使用下一行执行与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)
它仅返回:
我怎样才能使它返回每一行?
解决方法
这里有一个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 举报,一经查实,本站将立刻删除。