配列のキーが歯抜けだとlengthがundefindになる

axiosで受け取ったレスポンスのサイズを見るためにlengthプロパティーを参照したら何故かundefindになってしまいました。

理由

バックエンド側のレスポンスで

{
0: { id: 1 },
3: { id: 3 },
5: { id: 5 },
}

みたいな感じで返されていることが原因でした。
どうも、JavaScript/TypeScriptでは数字の配列キーは連番になっていないとダメみたいでした。
このようにして返さないとダメのようです。

{
0: { id: 1 },
1: { id: 3 },
2: { id: 5 },
}

ということで、バックエンド側でこのようなキーになるように変更します。 PHPであれば array_values()関数を使うことで対応ができます。

タイトルとURLをコピーしました