I am trying to match the result of a prompt with properties of various objects in an array. (I.e if city entered matches the name of one of the objects listed, return the coinciding temp)
let cities = [
{
name: "San Luis Obispo",
temp: 16,
uv: 1,
humidity: 5,
elevation: 28,
wind: 2,
},
{
name: "Morro Bay",
temp: 11,
uv: 2,
humidity: 8,
elevation: 1,
wind: 8,
}]
let city = prompt("Enter a city");
if (city === cities.name){
alert(`It is currently ${temp}°C in ${city}`);
}
CodePudding user response:
let cities = [
{
name: "San Luis Obispo",
temp: 16,
uv: 1,
humidity: 5,
elevation: 28,
wind: 2,
},
{
name: "Morro Bay",
temp: 11,
uv: 2,
humidity: 8,
elevation: 1,
wind: 8,
}]
let cityName = prompt("Enter a city");
const city = cities.find(cityX => {
return cityName === cityX.name
})
if (city){
alert(`It is currently ${city.temp}°C in ${cityName}`);
}
CodePudding user response:
run a for loop over the array of objects ( cities
), checking each city in the array:
let cities = [{
name: "San Luis Obispo",
temp: 16,
uv: 1,
humidity: 5,
elevation: 28,
wind: 2,
},
{
name: "Morro Bay",
temp: 11,
uv: 2,
humidity: 8,
elevation: 1,
wind: 8,
}
]
let city = prompt("Enter a city");
for (let i = 0; i < cities.length; i ) {
if (city == cities[i].name) {
alert(`It is currently ${cities[i].temp}°C in ${city}`);
}
}
CodePudding user response:
The following code should work. Explaination in comments.
const cityName = prompt("Enter a city").trim() // save city given in prompt in variable "cityName" (remove trailing whitespace via trim)
for(const city of cities) { // execute following code for all cities; the current city will be saved in variable "city"
if(city.name === cityName) { // check if name of currently checked city matches cityName
// if the city name matched, the variable "city" contains the correct city
alert(`It is currently ${city.temp}°C in ${cityName}`) // give correct alert relative to matched city
break // skip the rest of the cities
}
}
CodePudding user response:
Try this
let city = prompt("Enter a city");
Cities.forEach(current=>{
if (city.trim() === current.name){
alert(`It is currently ${current.temp}°C in ${city}`);
}
})