コードCata 05:getPrefix


strsは単語を含む配列です.共通の開始語(prefix)を返してください.
例えば、strs = ['start', 'stair', 'step'] returnは'st'strs = ['start', 'wework', 'today']リターン""

解いた答え

const getPrefix = strs => {
  if (!strs.length) {
    return ""
  }
  
  let prefix = "";

  const checkStartswith = (index) => {
    return strs.every((item) => item.startsWith(prefix + strs[0][index]))
  }
  
  for(let i = 0; i < strs[0].length; i++) {
    if(checkStartswith(i)) {
      prefix += strs[0][i]
    } else {
      return prefix;
    }
  }
  
  return prefix;
}
配列されたすべての要素を1つずつ審査するため、everyメソッド、startsWithメソッドを使用してGoogleで検索しました.フラッグハブにはif節を条件にcheckStartswith関数の返信文がそのまま入っていますが、ブログに出てくる条件が長すぎるようなので、別途チェック関数として取ります.
配列内のすべての要素が、これまでのprefixにstrs[0]を加えた次の文字で始まると、prefixにその文字が加算され、開始しなければ、これまでに収集されたprefixの論理が返されます.