首页 > 其他分享 >2024-1-24案例(地区查询)以及遍历方法

2024-1-24案例(地区查询)以及遍历方法

时间:2024-01-24 18:55:27浏览次数:16  
标签:24 map 遍历 list 查询 2024 名字 let 数组

目录

案例(地区查询)

需求:根据输入的省份名字和城市名字,查询地区并渲染列表

步骤

首先:确定URL网址和参数说明

  • 查询某个省内某个城市的所有地区

  • 参数名:

    pname:省份名字或直辖市名字,比如北京、福建省、辽宁省~

    cname:城市名,比如北京市、厦门市、大连市~

目前可以使用的URL

http://hmajax.itheima.net/api/area?pname=北京&cname=北京市

再次确定目标:根据省份和城市名字,查询地区列表

1.查询按钮-点击事件以及获取数据

代码如下

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<meta http-equiv="X-UA-Compatible" content="IE=edge"><!-- 这个不是很重要的 -->
		<meta name="viewport" content="width=device-width, initial-scale=1.0"><!--这个作用不大-->
		<title>地区查询</title>
		<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" />
		<style>
			:root{
				font-size: 15px;
			}
			body{
				padding-top: 15px;
			}
			
		</style>
	</head>
	<body>
		<div class="container">
			<form id="shenfen" class="row">
				<!-- 输入省份名字 -->
				<div class="mb-3 col">
					<label class="form-label">省份名字</label>
					<input type="text" value="北京" name="province"
					class="form-control province" placeholder="请输入省份名称"/>
				</div>
				<!-- 请输入城市名字 -->
				<div class="mb-3 col">
					<label class="form-label">城市名字</label>
					<input type="text" value="北京市" name="city" class="form-control city" placeholder="请输入城市名称"/>
				</div>
			</form>
			<button type="button" class="btn btn-primary sel-btn">查询</button>
			<br>
			<p>地区列表:</p>
			<ul class="list-group">
				<!-- 示例地区-->
				<li class="list-group-item">东城区</li>
			</ul>
		</div>
		<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
		<script>
			/*
			获取地区列表:http://hmajax.itheima.net/api/area
			查询参数:
			pname:省份或直辖市名字
			cname:城市名字
			*/
		   // 目标:根据省份和城市名字,查询地区列表
		   // 1.查询按钮-点击事件
		   document.querySelector('.sel-btn').addEventListener('click',()=>{
			   // 获取省份和城市名字
			   let pName = document.querySelector('.province').value
			   let cName = document.querySelector('.city').value
			   
			   // 3.基于axios请求地区列表数据
			   axios({
				   url: 'http://hmajax.itheima.net/api/area',
				   params: {
					   pname:pName,
					   cname:cName,
				   }
			   }).then(result=>{
				   // 查看是否获取成功
				   console.log(result)
				   // 将主要数据赋值给一个常量
				   let list = result.data.list
				   // 这里进行数组映射将获取的数据变成指定标签内的数据
				   let the = list.map(areaName => `<li class="list-group-item">${areaName}</li>`)
				   console.log(the)<!-- 这里输出获取遍历后的结果-->
			   })
		   })
		</script>
		
		
	</body>
</html>

这里使用了一个遍历的方法map

该方法的基本格式如下

let newArray = arr.map(callback(currentValue[, index[, array]])[, thisArg]);
  • arr:原始数组。
  • callback:用于处理数组每个元素的函数。
    • currentValue:数组中正在处理的当前元素。
    • index(可选):正在处理的当前元素的索引。
    • array(可选):调用 map 方法的数组。
  • thisArg(可选):执行 callback 时使用的 this 值。

功能说明:

  • 不改变原数组:map不会修改原数组,而是创建一个新的数据。这使得map成为一个不产生副作用的纯函数。
  • 返回新数组:map为原数组中的每个元素调用一次提供的函数,并使用结果构造建一个新数组。
  • 适用于转换:map是将一个数组的所有元素转换成另一钟形式的理想选择。

例子:

假设有一个数学数组,需要创建一个新数组,其中包含原数组中每个数字的平方。

let numbers = [1, 2, 3, 4, 5];
let squares = numbers.map(number => number * number);
console.log(squares); // [1, 4, 9, 16, 25]

这个例子中,map方法遍历numbers数组,并对每个元素执行箭头函数number=>number*number,这个函数返回每个数字的平方。结果是一个新的数组squares,它包含原数组中每个数字的平方。

解析案例里面的map方法

这里,map 方法对 list 数组中的每个 areaName 执行箭头函数 areaName => <li class="list-group-item">${areaName}</li>。结果是一个新数组 the,它包含了用 areaName值填充的<li> 元素的字符串。

总结来说,map 方法在这里用于从原始的数据数组创建一个新的数组,这个新数组的每个元素都是一个HTML元素的字符串形式,适合用于动态生成HTML内容。

该案例的最后一个将数据插入到页面上

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<meta http-equiv="X-UA-Compatible" content="IE=edge"><!-- 这个不是很重要的 -->
		<meta name="viewport" content="width=device-width, initial-scale=1.0"><!--这个作用不大-->
		<title>地区查询</title>
		<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" />
		<style>
			:root{
				font-size: 15px;
			}
			body{
				padding-top: 15px;
			}
			
		</style>
	</head>
	<body>
		<div class="container">
			<form id="shenfen" class="row">
				<!-- 输入省份名字 -->
				<div class="mb-3 col">
					<label class="form-label">省份名字</label>
					<input type="text" value="北京" name="province"
					class="form-control province" placeholder="请输入省份名称"/>
				</div>
				<!-- 请输入城市名字 -->
				<div class="mb-3 col">
					<label class="form-label">城市名字</label>
					<input type="text" value="北京市" name="city" class="form-control city" placeholder="请输入城市名称"/>
				</div>
			</form>
			<button type="button" class="btn btn-primary sel-btn">查询</button>
			<br>
			<p>地区列表:</p>
			<ul class="list-group">
				<!-- 示例地区-->
				<li class="list-group-item">东城区</li>
			</ul>
		</div>
		<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
		<script>
			/*
			获取地区列表:http://hmajax.itheima.net/api/area
			查询参数:
			pname:省份或直辖市名字
			cname:城市名字
			*/
		   // 目标:根据省份和城市名字,查询地区列表
		   // 1.查询按钮-点击事件
		   document.querySelector('.sel-btn').addEventListener('click',()=>{
			   // 获取省份和城市名字
			   let pName = document.querySelector('.province').value
			   let cName = document.querySelector('.city').value
			   
			   // 3.基于axios请求地区列表数据
			   axios({
				   url: 'http://hmajax.itheima.net/api/area',
				   params: {
					   pname:pName,
					   cname:cName,
				   }
			   }).then(result=>{
				   // 查看是否获取成功
				   console.log(result)
				   // 将主要数据赋值给一个常量
				   let list = result.data.list
				   // 这里进行数组映射将获取的数据变成指定标签内的数据
				   let the = list.map(areaName => `<li class="list-group-item">${areaName}</li>`)
				   console.log(the)<!-- 这里输出获取遍历后的结果-->
				   // 第四步将遍历后的li标签插入到页面上
				   document.querySelector('.list-group').innerHTML = the.join('')
			   })
		   })
		</script>
		
		
	</body>
</html>

结果如图

标签:24,map,遍历,list,查询,2024,名字,let,数组
From: https://www.cnblogs.com/lzyzjb/p/17985649

相关文章

  • 洛谷题单指南-模拟和高精度-P1249 最大乘积
    原题链接:https://www.luogu.com.cn/problem/P1249题意解读:题目分两步,第一步是将整数拆分成不同自然数的和,第二步通过高精度计算这些因数的乘积,要使乘积最大,需要某种贪心思想。解题思路:如何保证整数拆分后因子的乘积最大呢,有几个原则:1、最好不要包括因子1,但3、4除外,需要进行特......
  • 1.24学习进度
    1.RDD的创建通过并行化集合创建(本地对象转分布式RDD)读取外部数据源(读取文件):textfileapi(可以读取本地数据)2.算子是什么算子:分布式集合对象上的api方法/函数:本地对象的api3.算子的分类   Transformation:转换算子(返回值是rdd)特性:这类算子时lazy、懒加载的,如果没有action算子......
  • 树结构及前中后续遍历
    publicclassTree{publicstaticvoidmain(String[]args){Treeroot=newTree(50);Tree.insert(root,30);Tree.insert(root,60);Tree.insert(root,70);Tree.insert(root,100);Tree.insert(root,80);......
  • 寒假日记[2024]
    友联MDISL-寒假日记wo2011-寒假日记Won_DER-2024寒假日记shine-2024寒假衍生寒假颓废记前言MD,这学期颓的要死,感觉啥事没干(就算做过啥也忘了),所以我痛定思痛,无论颓也好,学也好,还是记录一下我寒假干的破事吧/fad/fad1.9等等这不是寒假吧(管他的)今天还好,做了些树形D......
  • 国产车灯芯片9V 12V 24V 48V 60V 90V 外围简单-H5022L
    车灯芯片是用于控制车灯光系统的集成电路,其主要功能是管理车辆的照明系统。以下是车灯芯片的一些优点:节能环保:一些先进的车灯芯片采用高效能的LED技术,相比传统照明系统更为节能,有助于减少车辆能耗,降低碳排放。多功能性:车灯芯片能够支持多种灯光模式,包括近光、远光、转向灯等,实现多......
  • Adobe After Effects 2024:让你的创意动起来 mac/win版
    AdobeAfterEffects2024是一款专业的数字视觉效果、合成和运动图形软件,被广泛应用于电影、电视、广告和网络媒体等领域。它能够帮助用户快速高效地将创意转化为令人惊叹的视觉效果,是视觉艺术家的首选工具之一。→→↓↓载AdobeAfterEffects2024mac/win版在AdobeAfterE......
  • 每日总结2024年1月24日
    比较适合用来做图表的网站首页-MadeAPiealova是一个轻量级的请求策略库,支持开发者使用声明式实现例如请求共享、分页请求、表单提交、断点续传等各种较复杂的请求,让开发者使用非常少量的代码就可以实现高可用性和高流畅性的请求功能,这意味着,你再也不需要自己绞尽脑汁编写请......
  • AP4084 耐压24V的锂电池线性充电管理芯片
         AP4084是一款耐压24V的单节锂离子电池恒压恒流充电管理理芯片,充电电流可达600ma(SOT23-5,FBP2*2-6L,800ma(DFN2*2-8L),1A(ESOP8).由于线性充电器在输入和输出大压差情况下会严重发热,其内部有热反馈电路可以对在充电过程中对芯片温度加以控制,将充电电流调节到较低水平,以适......
  • 性能巅峰!铁威马F4-424 Pro上线,引领NAS新体验
    过了腊八就是年开启放假倒计时啦同时也跟大家宣布一个好消息铁威马新品F4-424Pro开启预售啦~ 铁威马F4-424Pro专为高性能需求而设计回老家过年也不用打包文档工作生活两不误速来get! 小马也不卖关子了下面为大家介绍F4-424Pro的亮点全程高能!让你体验全新的NAS世......
  • Maya 2024:塑造未来的专业3D建模大师 mac/win版
    Maya2024是一款备受赞誉的专业3D建模软件,广泛应用于电影、游戏和设计等领域。作为Autodesk推出的最新版本,Maya2024在3D建模、动画和渲染方面有了许多创新和改进,为用户提供了更强大、更灵活的工具集。→→↓↓载Maya2024mac+winMaya2024的建模工具集非常丰富,包括多边形建模......