Rumah > Soal Jawab > teks badan
Tiada masalah semasa menguji, tetapi kadangkala ralat "Tidak boleh membaca sifat null (baca 'nickname')" . Saya menyiarkan sebahagian daripada kod.
let seat = [ null, null, { nickname: "user1", uuid: "d94e81f3-df66-45f6-a593-c7ee6ccfe261" }, null, { nickname: "user2", uuid: "d94e81f3-df66-45f6-a593-c7ee6ccfe261" }, null, null, null, null, null, null, ]; for (const i in seat) { if (seat[i].nickname === "user1") { seat[i] = null; break; } } console.log(seat);
Saya tidak tahu kenapa kadang-kadang tiada masalah, tetapi tiba-tiba ada kesilapan.
for (const i in seat) { if (seat[i] !== null && seat[i].nickname === "user1") { seat[i] = null; break; } }
Saya menyelesaikan masalah buat sementara waktu dengan menukar kod dalam borang di atas. Saya pelik kenapa...
P粉9039692312023-09-10 00:29:02
Ini kerana beberapa elemen dalam tatasusunan adalah batal, jadi anda harus menambah syarat untuk diperiksa, seperti yang anda lakukan seat[i] !== null
,但你也可以使用可选链操作符?.
.
Rujukan:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Optional_chaining
for (const i in seat) { if (seat[I]?.nickname === "user1") { seat[i] = null; break; } }
Contoh: Jika data anda kelihatan seperti di bawah, anda tidak perlu menambah operator rantaian bersyarat atau pilihan.
let seat = [ { nickname: "user1", uuid: "d94e81f3-df66-45f6-a593-c7ee6ccfe261" }, { nickname: "user4", uuid: "d94e81f3-df66-45f6-a593-c7ee6ccfe263" }, { nickname: "user5", uuid: "d94e81f3-df66-45f6-a593-c7ee6ccfe264" }, { nickname: "user3", uuid: "d94e81f3-df66-45f6-a593-c7ee6ccfe265" }, { nickname: "user1", uuid: "d94e81f3-df66-45f6-a593-c7ee6ccfe267" }, { nickname: "user2", uuid: "d94e81f3-df66-45f6-a593-c7ee6ccfe269" }, ]; for (const i in seat) { if (seat[i].nickname === "user1") { seat[i] = null; break; } }