Exercice : Appliquer la notion
On veut formater l'adresse d'un lieu en France. On met en place le code suivant contenant les informations du lieu dans un objet JavaScript.
const addressInformation = {
geometry: {
coordinates: [
2.29391,
48.876318],
type: 'Point'
},
properties: {
city: 'Paris',
citycode: '75117',
context: '75, Paris, Île-de-France',
district: 'Paris 17e Arrondissement',
id: '75117_0413',
importance: 0.5812644699670191,
label: "Rue de l'Arc de Triomphe 75017 Paris",
name: "Rue de l'Arc de Triomphe",
postcode: '75017',
score: 0.6892058609060925,
type: 'street',
x: 648211.84,
y: 6864264.35
},
type: 'Feature'
}
console.log('Ville : ' + addressInformation.city)
console.log('Contexte : ' + addressInformation.context)
console.log('Voie : ' + addressInformation.name)
console.log('Code Postal : ' + addressInformation.postcode)
Question
Exécuter ce code dans la console Firefox en mode de saisie multi-lignes.
Qu'obtient-on comme résultat ? Celui-ci est-il correct ?
Solution
On obtient le résultat suivant :
Ville : undefined
Contexte : undefined
Voie : undefined
Code Postal : undefined
Ce résultat n'est pas correct : il semblerait que les champs addressInformation.city, addressInformation.context, addressInformation.name et addressInformation.postcode ne soient pas définis.
Question
Inspecter la valeur de addressInformation dans la console de Firefox grâce à un point d'arrêt défini avant l'affichage.
Où se trouvent les champs addressInformation.city, addressInformation.context, addressInformation.name, et addressInformation.postcode dans l'objet addressInformation ?
Solution
On inspecte la valeur d'addressInformation ainsi :

Ces champs se trouvent dans l'attribut properties de addressInformation.
Question
Corriger le script en changeant l'accès aux composantes de addressInformation pour corriger le problème.
Exécuter le script obtenu. Quel affichage obtient-on ?
Solution
On modifie le code final pour faire apparaître properties. Le code final est :
const addressInformation = {
geometry: {
coordinates: [
2.29391,
48.876318],
type: 'Point'
},
properties: {
city: 'Paris',
citycode: '75117',
context: '75, Paris, Île-de-France',
district: 'Paris 17e Arrondissement',
id: '75117_0413',
importance: 0.5812644699670191,
label: "Rue de l'Arc de Triomphe 75017 Paris",
name: "Rue de l'Arc de Triomphe",
postcode: '75017',
score: 0.6892058609060925,
type: 'street',
x: 648211.84,
y: 6864264.35
},
type: 'Feature'
}
console.log("Ville : " + addressInformation.properties.city)
console.log("Contexte : " + addressInformation.properties.context)
console.log("Voie : " + addressInformation.properties.name)
console.log("Code Postal : " + addressInformation.properties.postcode)
On obtient :
Ville : Paris
Contexte : 75, Paris, Île-de-France
Voie : Rue de l'Arc de Triomphe
Code Postal : 75017