簡體   English   中英

檢查字符串是否以字符串數組開頭

[英]Check if string start with an Array of strings

我有一個字符串數組:
listOfTypes = ['blogPost', 'work']

我有一個 routeName routeName = blogPost-slugrouteName = blogPost ;

routeName包含 = blogPost我想返回字符串“page”。
如果routeNameblogPost- 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM