在JavaScript中,城市列表通常可以表示为一个数组,其中每个元素都是一个代表城市的字符串或者对象。以下是一些基础概念和相关信息:
数组(Array):在JavaScript中,数组是一种特殊的对象,用于存储多个值。城市列表可以用数组来表示。
字符串(String):城市名称通常以字符串的形式存储。
对象(Object):如果需要存储更多关于城市的信息(如人口、面积等),可以使用对象。
const cities = ['北京', '上海', '广州', '深圳'];
console.log(cities);
const cities = [
{ name: '北京', population: 2154, area: 16410 },
{ name: '上海', population: 2424, area: 6340 },
{ name: '广州', population: 1350, area: 7434 },
{ name: '深圳', population: 1253, area: 1997 }
];
console.log(cities);
问题1:如何从服务器获取城市列表并显示在前端?
解决方法:
fetch
或axios
等库从服务器获取JSON格式的城市列表数据。cities
数组)。示例代码:
fetch('/api/cities')
.then(response => response.json())
.then(data => {
const citiesList = document.getElementById('cities-list');
data.forEach(city => {
const listItem = document.createElement('li');
listItem.textContent = city.name;
citiesList.appendChild(listItem);
});
})
.catch(error => console.error('Error fetching cities:', error));
问题2:如何根据用户输入过滤城市列表?
解决方法:
filter
方法根据输入值过滤城市列表。示例代码:
const input = document.getElementById('city-input');
const citiesList = document.getElementById('cities-list');
input.addEventListener('input', function() {
const filterValue = this.value.toLowerCase();
const filteredCities = cities.filter(city => city.name.toLowerCase().includes(filterValue));
// 清空当前列表
citiesList.innerHTML = '';
// 重新添加过滤后的城市
filteredCities.forEach(city => {
const listItem = document.createElement('li');
listItem.textContent = city.name;
citiesList.appendChild(listItem);
});
});
希望这些信息对你有所帮助!如果有更多具体问题,请随时提问。
领取专属 10元无门槛券
手把手带您无忧上云