/ *
Você tem que prever a saída deste programa SEM EXECUTÁ-LO.
Para fazer isso, tente anotar o valor que todas as variáveis assumem
durante cada etapa da execução do programa.
Responda as seguintes questões:
1. Este programa gera um erro. Por quê? (Se você não conseguir encontrar, tente executá-lo).
2. Remova a linha que gera o erro.
3. O que é impresso no console?
4. Quantas vezes "f1" é chamado?
5. Quantas vezes "f2" é chamado?
6. Qual valor o parâmetro "a" assume na primeira chamada "f1"?
7. Qual é o valor da variável externa "a" quando "f1" é chamado pela primeira vez?
* /
let x = 2;
let a = 6;
const f1 = function(a, b) {
return a + b;
};
const f2 = function(a, b) {
return a + b + x;
};
console.log(x);
console.log(a);
console.log(b);
for (let i = 0; i < 5; ++i) {
a = a + 1;
if (i % 2 === 0) {
const d = f2(i, x);
console.log(d);
} else {
const e = f1(i, a);
console.log(e);
}
}
/ *
No início do curso, você trabalhou em equipes para classificar os membros de sua equipe, identificados por
números, em ordem crescente ou decrescente.
Hoje, você aplicará o algoritmo de classificação que usou naquele exercício no código!
Crie uma função chamada sortAges que:
- leva uma matriz de tipos de dados mistos como entrada
- remove quaisquer tipos de dados não numéricos sem usar o método de filtro embutido de javascript
- retorna uma matriz de idades classificadas em ordem crescente
- MODO HARD - sem usar o método de classificação javascript embutido built
Você não precisa se preocupar em fazer esse algoritmo funcionar rápido! A ideia é levar você a
"pense" como um computador e pratique seu conhecimento de JavaScript básico.
* /
function sortAges(arr) {}
/* ======= TESTS - DO NOT MODIFY ===== */
const agesCase1 = [
"?",
100,
"?",
55,
"?",
"?",
45,
"?",
"Sanyia",
66,
"James",
23,
"?",
"Ismeal",
];
const agesCase2 = ["28", 100, 60, 55, "75", "?", "Elamin"];
function arraysEqual(a, b) {
if (a === b) return true;
if (a == null || b == null) return false;
if (a.length != b.length) return false;
for (let i = 0; i < a.length; ++i) {
if (a[i] !== b[i]) return false;
}
return true;
}
function test(test_name, expr) {
let status;
if (expr) {
status = "PASSED";
} else {
status = "FAILED";
}
console.log(`${test_name}: ${status}`);
}
test(
"sortAges function works - case 1",
arraysEqual(sortAges(agesCase1), [23, 45, 55, 66, 100])
);
test(
"sortAges function works - case 2",
arraysEqual(sortAges(agesCase2), [55, 60, 100])
);