vue中的map创建和使用

1.vue中的map创建

        在data中定义我们的map :{}

         然后在create 中创建一个map;

 首先我遇到的情况是我需要存储好多组对应的数据,如果这时用array的话,会造成数组错乱,所以我选择键值对的方式,这样一个键对应一个值就不会再错乱了。我现在是一个节点对应一组人员,每次选择不同的节点需要选择不同的人员对应上。

这时我会先声明一个map,因为节点数据是唯一的,我就把节点作为键,值先设为空,

因为我的值是一个对象,所以我先创建了一个空对象。 此时的对象必须是临时对象,也就是每个键需要对应一个对象,要不然后边的对象会覆盖前边的。

candidate_ids是我将要塞人员值得参数,

这时当我们选完人时,首选获取到这个键 的值也就是myMap.get();通过这种方式可以获取到,然后把人员值赋给对象的参数,再把这个新的对象重新塞进去就可以了。 

下面是我选择了两个节点的情况,这就是我想要的效果

 

### Vue3 中使用 `map` 进行循环 在 Vue3 中,`map` 是一种强大的工具用于转换数组中的每一个元素并返回一个新的数组。这非常适合于创建基于现有数据的新列表或对象集合。 #### 基本语法 `array.map()` 接受一个回调函数作为参数,该回调函数会为原始数组中的每个元素执行一次,并构建由这些调用的结果组成的新数组[^2]。 ```javascript const newArray = array.map((currentValue, index, array) => { // 返回新值来构成新的数组 }); ``` #### 实际应用场景 假设有一个包含多个用户信息的对象数组,在模板渲染之前可能需要对某些字段做特定处理: ```html <template> <ul> <!-- 渲染经过映射后的用户名 --> <li v-for="(name, idx) in formattedNames" :key="idx">{{ name }}</li> </ul> </template> <script setup> import { ref } from 'vue'; // 定义初始的数据集 const users = [ { id: 1, firstName: "John", lastName: "Doe" }, { id: 2, firstName: "Jane", lastName: "Smith" } ]; // 使用 map 对名字进行格式化 const formattedNames = ref(users.map(user => `${user.firstName} ${user.lastName}`)); console.log(formattedNames.value); // ["John Doe", "Jane Smith"] </script> ``` 在这个例子中,通过 `map` 将用户的全名提取出来形成一个新的字符串数组,然后利用 `v-for` 指令将其展示在一个无序列表里[^1]。 #### 处理更复杂的情况 当面对更加复杂的业务逻辑时,比如不仅限于简单的属性组合而是涉及到更多计算或是异步操作的时候,可以在组件的方法内定义更为详细的映射过程: ```javascript methods: { async fetchUserDetails() { const detailedUsers = await Promise.all( this.users.map(async user => ({ ...user, fullName: `${user.firstName} ${user.lastName}`, avatarUrl: await getUserAvatarById(user.id), })) ); return detailedUsers; } } ``` 上述代码展示了如何结合 `Promise.all` `async/await` 来并发获取额外的信息(如头像URL),并将它们附加到原有对象上再返回给视图层[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值