[英]Check if string start with an Array of strings
我有一個字符串數組:
listOfTypes = ['blogPost', 'work']
我有一個 routeName routeName = blogPost-slug
或routeName = blogPost
;
當routeName
包含 = blogPost
我想返回字符串“page”。
如果routeName
以blogPost-
string-
,我想返回類型(來自listOfTypes
)
我做了一個有效的 forEach function。 只是,當我只想要一個結果時,我會得到幾個結果(這是正常的)(如果它存在於數組中,那么我返回 type 或page
)
listOfTypes = ['blogPost', 'work'];
// routeName is retrieved dynamically. This is for example, "blogPost" or "blogPost-slug" or "work-slug"
listOfTypes.forEach(type => {
// Check if route name starts with type + "-" because it's separator with subroute
// (/blogPost is a page, /blogPost-slug is a blogPost so check for blogPost-)
if(routeName.startsWith(type + '-')) {
return console.log(type);
} else {
return console.log('page');
}
});
// result: 'blogPost' and 'page'
// expected result: 'blogPost'
如果不匹配,我該怎么做才能獲得類型或“頁面”?
謝謝
使用Array#find
:
const listOfTypes = ['blogPost', 'work']; const getType = route => listOfTypes.find(type => route.startsWith(`${type}-`))?? 'page'; console.log( getType('blogPost') ); console.log( getType('blogPost-slug') ); console.log( getType('work-slug') );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.