Dans mon code "for..in...", parfois les erreurs de type TypeScript n'apparaissent pas
P粉166779363
P粉166779363 2023-09-09 13:47:13
0
1
536

Pas de problème lors des tests, mais parfois une erreur "Impossible de lire la propriété de null (lire 'pseudo')" . J'ai posté une partie du code.

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);

Je ne sais pas pourquoi parfois il n'y a pas de problème, mais tout à coup il y a une erreur.

for (const i in seat) {
  if (seat[i] !== null && seat[i].nickname === "user1") {
    seat[i] = null;
    break;
  }
}

J'ai temporairement résolu le problème en modifiant le code dans le formulaire ci-dessus. Je suis curieux de savoir pourquoi...

P粉166779363
P粉166779363

répondre à tous(1)
P粉903969231

C'est parce que certains éléments du tableau sont nuls, vous devez donc ajouter une condition à vérifier, comme vous l'avez fait seat[i] !== null,但你也可以使用可选链操作符?..

Référence :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;
  }
}

Exemple : Si vos données ressemblent à celles ci-dessous, vous n'avez pas besoin d'ajouter des opérateurs de chaînage conditionnels ou facultatifs.

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;
  }
}
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal