🦚
Math.max に配列を渡すと NaNになる理由と使い方
Math.max() は 複数の数値 を引数に取る関数です。
そのため、Math.max(prev.map(item => item.id)) のように 配列をそのまま渡すとNaN になります。
✅ 正しくはスプレッド構文 ... で配列を展開します。
// ❌ NaNになる例
Math.max([1, 2, 3]);
// ✅ 配列を展開して最大値を取得
Math.max(...[1, 2, 3]); // → 3
フォーム追加時の正しい書き方は👇
const nextId = prev.length
? Math.max(...prev.map(item => item.id)) + 1
: 1;
📘 まとめ
- Math.max() は個々の数値を引数に取る
- 配列はそのまま渡せない
- スプレッド構文で展開すればOK
Discussion