javascript エラー「Uncaught TypeError: xxx.join is not a function」の解決方法

javascript エラー「Uncaught TypeError: xxx.join is not a function」の解決方法

javascriptで、エラー「Uncaught TypeError: xxx.join is not a function」が発生した場合の原因と解決方法を記述してます。配列以外に対して「join」を使用した場合などに発生します。

環境

  • OS windows11 pro 64bit
  • Apache 2.4.43
  • ブラウザ chrome 107.0.5304.107

エラー内容

以下のコードで発生。

let arr = ['a', 'b', 'c'].join();

console.log(arr);

arr.join();

エラーメッセージ

Uncaught TypeError: arr.join is not a function

画像

firefox(バージョン107)でも、同様のエラーとなります。

Uncaught TypeError: arr.join is not a function

画像

safari(15.5)では、以下のエラーとなります。

TypeError: arr.join is not a function. (In 'arr.join()', 'arr.join' is undefined)

画像

原因

配列に「join」した結果の「文字列」に対して、再度「join」を実行しようとしているため。「join」は文字列には使用できない。

解決方法

必要がなければ「2回」実行しない。

let arr = ['a', 'b', 'c'].join();

console.log(arr); // a,b,c

もしくは、配列に戻すのであれば「split」を使用します。

let arr = ['a', 'b', 'c'].join();

console.log(arr); // a,b,c

console.log(arr.split(',')); // ['a', 'b', 'c']