Olá!
O erro "TypeError: Cannot read properties of undefined (reading 'patente')" está ocorrendo porque você está tentando acessar a propriedade 'patente' de um elemento do array 'militares' que não existe. Isso ocorre porque você está utilizando o operador de comparação '<=' no loop for, o que faz com que o loop tente acessar um elemento além do tamanho do array.
Para corrigir esse erro, você deve alterar a condição do seu loop for para 'i < militares.length', de modo que ele percorra somente até o último elemento do array.
Aqui está o trecho de código corrigido:
const soldados = [{ nome: "John", patente: "sd", numero: 1, status: false }, { nome: "martins", patente: "sd", numero: 2, status: false }, { nome: "junior", patente: "sd", numero: 3, status: false }, { nome: "santos", patente: "sd", numero: 4, status: true }, { nome: "leonardo", patente: "sd", numero: 5, status: true }, { nome: "cleiton", patente: "sd", numero: 6, status: true }, { nome: "oliveira", patente: "sd", numero: 7, status: true }, { nome: "almeida", patente: "sd", numero: 8, status: true }, { nome: "rocha", patente: "sd", numero: 9, status: true }, { nome: "ferreira", patente: "sd", numero: 10, status: true }];
const militares = [...soldados];
const escalados = [];
for (let i = 0; i < militares.length; i++) {
if (militares[i].patente === "sd" && militares[i].status === true) {
escalados.push(militares[i]);
militares[i].status = false;
}
}
Com essa correção, o loop irá percorrer corretamente todos os elementos do array 'militares' e evitará o erro de tentar acessar propriedades de elementos indefinidos.
Espero que esta explicação tenha sido útil! Se tiver mais alguma dúvida, não hesite em perguntar.