回答編集履歴

1

追記

2022/06/03 15:47

投稿

退会済みユーザー
test CHANGED
@@ -20,3 +20,21 @@
20
20
  }
21
21
 
22
22
  console.log(longestCommonHead(sample)); // => my_name_is_
23
+ ```
24
+
25
+ ### 補足
26
+ 上記のコードでは、`wihle`ループの終了条件として `i` の上限を最も短い文字列の長さ `minLength`未満としていましたが、これは最短の文字列の長さである必要はなく先頭の文字列`firstToken`の長さでも事足りました。ですので、上記のコードは以下のように修正して一行減らせます。
27
+
28
+ ```diff
29
+ const [firstToken, ...restTokens] = tokens;
30
+ - const minLength = Math.min(...tokens.map(token => token.length));
31
+
32
+ let i = 0;
33
+ - while(i < minLength) {
34
+ + while(i < firstToken.length) {
35
+ if (restTokens.every(token => token[i] === firstToken[i]))
36
+ i ++;
37
+
38
+ ```
39
+
40
+