JS 两个数组通过对象映射绑定

在开发过程中,遇到页面渲染时需要将两个数组的数据关联。其中一个数组的部分数据需从接口获取,且接口返回的数据顺序不固定。为了解决这个问题,可以创建一个对象并用接口返回的唯一字段作为键,进行数据绑定。在Vue.js中,通过遍历数组并用对象键值对存储,然后在模板中使用v-for指令结合对象属性来渲染,从而避免了复杂的if判断,简化了代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开发过程中会遇到一种情况
页面渲染时使用了一个数组,而接口也返回了一个数组
通过一个唯一字段关联两个数组的数据
两个数组有部分数据重合,但不能完全使用接口返回的
eg

list:[
	{name:"名称1",value:10,code:"",img:""}
	...
]

此处的value值需要通过接口请求
eg 返回数据情况
数据的顺序是不定的,你无法通过索引值一一绑定

arr = [{name:"",value:""}...]
let obj = {} //默认对象vue渲染时不会报错
for(let item of arr){
	obj[item.name] = item.value //自定义唯一标识符绑定
}
<div v-for='item of list'>
	{{obj[item.name]}}
</div>

实战例子
接口返回,不止返回需要渲染的数据
在这里插入图片描述
js

//data
sensorList: [
     {img:require('@/assets/meetting/wd.png'),name:"温度",code:'TEMPERATURE'},
     {img:require('@/assets/meetting/dbf.png'),name:"湿度",code:'HUMIDITY'},
     {img:require('@/assets/meetting/co2.png'),name:"二氧化碳",code:'CO2'},
     {img:require('@/assets/meetting/pm10.png'),name:"PM10",code:'PM10'},
     {img:require('@/assets/meetting/pm2.5.png'),name:"PM2.5",code:'PM25'},
],
sensorObj:{},
//methods
let arr = res.data || []; // 接口返回数组
this.sensorObj = {}
for (let item of arr) {
   this.sensorObj[item.paramModelCode] = item.paramValueName+item.paramUnit
}
//html
 <div v-for="(item,index) in sensorList" :key="index" class="sensor_item">
	<img :src="item.img" alt="">
  	<div class="value value1">{{sensorObj[item.code]}}</div>
  	<div>{{item.name}}</div>
</div>

效果图
在这里插入图片描述
看到有代码是循环加if判断去做的,不够优雅。这样写代码量少也清晰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值