3 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超6個(gè)贊
如果字符串的結(jié)構(gòu)始終相同 - 并且您想要“mission”的第二個(gè)實(shí)例 - 則將完整字符串拆分為“mission”的文本。
這將產(chǎn)生一個(gè)包含三個(gè)部分的數(shù)組 - ["2020-12-09-name_of_this_", " num1 ", "1_fileName_something"])
然后獲取此部分?jǐn)?shù)組中的最后一項(xiàng),并從結(jié)果字符串的開頭獲取數(shù)字。
然后,您可以在其前面加上刪除的“任務(wù)”前綴,將其推入一個(gè)數(shù)組中,這樣您就擁有了一系列任務(wù)。
如果您的初始字符串不包含“mission”的兩個(gè)實(shí)例,那么您可以將其設(shè)置為返回第二個(gè)而不是第三個(gè)部分,就像我對“mission2”所做的那樣。
const missions = [
"2020-12-09-name_of_this_mission_num1_mission1_fileName_something",
"2020-12-09-name_of_this_mission_num1_mission12_fileName_something",
"2020-12-09-name_of_this_mission_num23_mission1_fileName_something_else",
"2020-12-09-name_of_this_mission2_fileName_something_else"
]
let missionsArr = [];
missions.forEach(function(mission) {
const missionPortions = mission.split('mission');
let index;
missionPortions.length == 2
? index = 1
: index = 2
missionsArr.push('mission' + parseInt(missionPortions[index]))
})
console.log(missionsArr); //gives ["mission1","mission12", "mission1", "mission2"];

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超7個(gè)贊
一個(gè)簡單的正則表達(dá)式匹配函數(shù)。請注意,“match”輸出一個(gè)數(shù)組,因此推送 match[0]:
const missions = [
"2020-12-09-name_of_this_mission_num1_mission1_fileName_something",
"2020-12-09-name_of_this_mission_num1_mission12_fileName_something",
"2020-12-09-name_of_this_mission_num23_mission1_fileName_something_else"
]
let Arr = [];
missions.forEach(function(mission) {
const missionID = mission.match(/mission\d+/);
Arr.push(missionID[0]);
})
console.log(Arr);

TA貢獻(xiàn)1866條經(jīng)驗(yàn) 獲得超5個(gè)贊
獲取任務(wù)##的最簡單方法是使用正則表達(dá)式,假設(shè)#是可變的數(shù)字位數(shù)。
基本正則表達(dá)式將匹配后跟至少一個(gè)數(shù)字的/mission\d+/字符串。"mission"
假設(shè)您的輸入為:
const missionsTexts = [
"2020-12-09-name_of_this_mission_num1_mission1_fileName_something",
"2020-12-09-name_of_this_mission_num1_mission12_fileName_something",
"2020-12-09-name_of_this_mission_num23_mission1_fileName_something_else"
];
mission#您可以使用以下算法將它們轉(zhuǎn)換為數(shù)組:
const missions = missionsTexts.map(missionText => missionText.match(/mission\d+/g)[0]);
請注意,這假設(shè)mission#每個(gè)任務(wù)文本只有一個(gè)。該g修飾符用于確保正則表達(dá)式不會(huì)在找到的第一個(gè)數(shù)字之后創(chuàng)建匹配項(xiàng)。
添加回答
舉報(bào)