开发避坑指南(27):Vue3中高效安全修改列表元素属性的方法

需求

Vue3 中如何遍历list并修改list元素的属性的值?

解决办法

1、‌使用 map 方法‌

vue 复制代码
const newList = list.value.map(item => {
  return {
    ...item,
    modifiedProperty: 'newValue' // 修改的属性名称和属性值
  }
})

Vue 中的 map() 函数是 JavaScript 数组的高阶函数,主要用于遍历数组并返回新数组,常用于数据处理和响应式更新。

特点‌:不修改原数组,返回处理后的新数组。

典型场景‌:转换数据格式、修改元素属性的值或提取特定属性。

...item 包含两个关键部分:

item‌:代表列表渲染 (v-for) 中当前遍历的元素,它是数组或对象迭代项的别名变量。

示例:v-for="item in items" 中,item 是数组 items 的单个元素可通过 item.属性名 访问具体数据(如 item.id)

...(展开运算符)‌:‌作用‌是将 item 对象的所有属性展开为新对象的属性。

2、‌使用 forEach()方法‌

使用 forEach()函数 直接修改原数组。在 Vue 中,forEach() 是 JavaScript 数组的原生方法,用于遍历数组元素并执行回调函数,但不会返回新数组。

vue 复制代码
list.value.forEach(item => {
	item.oid=null;//将list元素的oid属性设置为null
});

基础语法:

vue 复制代码
array.forEach((item, index, arr) => {
  // 操作逻辑
})

‌参数说明‌:

item:当前遍历的元素

index(可选):当前元素的索引

arr(可选):原数组本身

相关推荐
To_OC10 小时前
从一头雾水到跑通全流程:我用一个周末啃透了JWT登录鉴权
前端·后端·http
excel11 小时前
研究 Vue 3 源码的收获
前端·vue.js
可乐鸡翅yeah_13 小时前
业务中 M3U8 水印相关坑,硬水印和动态水印区别
前端·网络·数据库·ffmpeg·m3u8在线
lerhxx13 小时前
AI 应用如何高效优雅地恢复中断?—— "连接解耦 + 状态持久化"
前端·javascript
计算机魔术师14 小时前
METR 演示 AI 智能体如何篡改 Inspect 评估记录以掩盖不当行为
前端
前端snow14 小时前
ai agent --- 异步处理之 Rabbit MQ
前端
念何架构之路14 小时前
zap扩展生态与总结
java·前端·数据库
独孤九剑打醒他14 小时前
【原创开源】【概念设计】源 - 栅 - 漏 - 栅 - 源 横向双栅 MOS,低压交流多值逻辑芯片探索
前端·其他·架构·开源·硬件工程
mantou13215 小时前
我给 AI Agent 做了个「油猴」:让 Claude Code / Codex 直接用你已登录的浏览器
前端·javascript·后端
默_笙15 小时前
🍕 一个主编、三个工种、两本手册:搭一支 AI 调研队
前端·javascript