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

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

javascriptで、エラー「Uncaught TypeError: xxx.pop is not a function」が発生した場合の原因と解決方法を記述してます。

環境

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

エラー内容

以下のコードを実行した際に発生。

const obj = {name: 'mebee',age: 35};

obj.pop();

エラーメッセージ

Uncaught TypeError: obj.pop is not a function

画像

firefox105の場合は、以下のエラーが発生します。

Uncaught TypeError: obj.pop is not a function

画像

safari15.5では、以下のエラーとなります。

TypeError: obj.pop is not a function. (In 'obj.pop()', 'obj.pop' is undefined)

原因

「pop()」は配列にしか使用できない

解決方法

配列かどうか判定してから使用するか、

const obj = {name: 'mebee',age: 35};

if (Array.isArray(obj)) {
  obj.pop();
}

「pop()」で最終位置を取得して削除する

let obj = {name: 'mebee',age: 35};

let last = Object.keys(obj).pop();

delete obj[last];

console.log(obj);
// {name: 'mebee'}