TypeError: invalid Array.prototype.sort argument

JavaScript の例外 "invalid Array.prototype.sort argument" は、 Array.prototype.sort() の引数が undefined でもオペランドを比較する関数でもない場合に発生します。

エラーメッセージ

TypeError: argument is not a function object (Edge)
TypeError: invalid Array.prototype.sort argument (Firefox)

エラーの種類

エラーの原因

Array.prototype.sort() の引数には、undefined かオペランドを比較する関数のいずれかが求められれます。

無効な場合

[1, 3, 2].sort(5);  // TypeError

var cmp = { asc: (x, y) => x >= y, dsc: (x, y) => x <= y };
[1, 3, 2].sort(cmp[this.key] || 'asc');  // TypeError

有効な場合

[1, 3, 2].sort();   // [1, 2, 3]

var cmp = { asc: (x, y) => x >= y, dsc: (x, y) => x <= y };
[1, 3, 2].sort(cmp[this.key || 'asc']); // [1, 2, 3]

関連情報