Salut, je suis débutant dans le langage javascript. Je voudrais une personne me fasse le code pour cela et qui m'explique un peu pour après . j'ai fais un début d'archictecture de code mais je sais pas quoi mettre dans la fonction.
Cities
| Id | Population |Urban Area|Natural Area|
| 0 | 200 | 30 | 10 |
| 1 | 440 | 25 | 40 |
| 2 | 120 | 40 | 40 |
| 3 | 800 | 50 | 20 |
| 4 | 700 | 30 | 80 |
function OrderCities(cities)
{
}
const cities = {};
let q1_result = OrderCities(cities);
console.log(q1_result); // Expected output: [4, 1, 3]
Ce que je veux
Ecrire une fonction qui ordonne les 3 villes les plus densément peuplées par leur rapport zone urbaine/zone naturelle (ordre croissant).
Ce que j'obtiens
Décrivez vos éventuelles erreurs ou ce que vous obtenez à la place de ce que vous attendez :(
Désolé, j'ai pas utilisé ton template.. Voilà, tu devrais t'y retrouver
// Pas de majuscule au début, c'est moche
function orderCities(cities) {
cities.sort(function (a, b) {
// Densité des habitants
// Poulation / surface
const aDensity = a.population / (a.urban_area + a.natural_area);
const bDensity = b.population / (b.urban_area + b.natural_area);
// Si la densité de a < b, alors en met a avant
if (aDensity < bDensity) {
return -1;
}
// Si la densité de a > b, alors on met a après
if (aDensity > bDensity) {
return 1;
}
// Sinon, il reste à sa place
return 0;
});
return cities.slice(-3);
}
const cities = [
{
id: 0,
population: 200,
urban_area: 30,
natural_area: 10
},
{
id: 1,
population: 440,
urban_area: 25,
natural_area: 40
},
{
id: 2,
population: 120,
urban_area: 40,
natural_area: 40
},
{
id: 3,
population: 800,
urban_area: 50,
natural_area: 20
},
{
id: 4,
population: 700,
urban_area: 30,
natural_area: 80
}
];
// Pas de snakecase pour les variables, c'est moche
const q1Result = orderCities(cities);
console.log(q1Result); // Expected output: [4, 1, 3]
Salut, ça fait 3 postes sur le forum où tu demandes qu'on produise du code pour toi sans même essayer, tes peut être débutant en JS, mais faut se poser des questions. Google et ses potes, moteurs de recherche, sont nos amis, MDN (Mozilla Developer Network) et un grand ami des devs fronts.
Pour chacun de tes postes sur le forum, je trouve la solution en 2 secs (vraiment 2 secs) sur Google qui me donne des résultats de StackOverflow (encore un grand ami des devs), cherche un minimum avant de poster sur le forum.
Rechercher et galérer c'est sûrement le meilleur moyen d'apprendre.
https://stackoverflow.com/questions/1129216/sort-array-of-objects-by-string-property-value
salut, oui en effet j'ai déja fait des recherches je m'y prend peut être mal , le problème que je rencontre surtout c'est es que je fait 1 seul tableau d'array qui contient tous ses élements ou bien un plusieurs ?
Voilà, avec mon ami StackOverflow et calculs basiques de mathématique
const cities = [
{
id: 0,
population: 200,
urban_area: 30,
natural_area: 10
},
{
id: 1,
population: 440,
urban_area: 25,
natural_area: 40
},
{
id: 2,
population: 120,
urban_area: 40,
natural_area: 40
},
{
id: 3,
population: 800,
urban_area: 50,
natural_area: 20
},
{
id: 4,
population: 700,
urban_area: 30,
natural_area: 80
}
];
function compare(a, b) {
// Densité des habitants
// Poulation / surface
const aDensity = a.population / (a.urban_area + a.natural_area);
const bDensity = b.population / (b.urban_area + b.natural_area);
// Si la densité de a < b, alors en met a avant
if (aDensity < bDensity) {
return -1;
}
// Si la densité de a > b, alors on met a après
if (aDensity > bDensity) {
return 1;
}
// Sinon, il reste à sa place
return 0;
}
cities.sort(compare);
const top3ByDensity = cities.slice(-3);
d'accord merci donc si j'ai bien compris la fonction compare remplacerait ? Ma fonction OrderCities qui prend en paramètre cities