当前位置: 首页 > news >正文

代码异常(js中forEach)NO.3

1. 环境

Vue3,Element Plsu

2. 示例代码

    dataList.value.forEach((x) => {
      if (x.id == ids.value[0]) {
        x = { id: ids.value[0], ...form.value }
      }
    })

3. 情景描述

循环不能正确改变dataList.value里面的值

4. 原因

  • 在 JavaScript 中,forEach 的回调函数接收到的参数 x 是数组中当前元素的一个引用。
  • 如果你直接对 x 赋值(如 x = {…}),这只是改变了局部变量 x 的值,并不会影响原始数组 dataList.value。

5. 解决方案

5.1 map

    dataList.value = dataList.value.map((x) => {
      if (x.id == ids.value[0]) {
        return { id: ids.value[0], ...form.value } // 修改符合条件的对象
      }
      return x // 不符合条件时保留原对象
    })

5.2 findIndex

const index = dataList.value.findIndex(x => x.id == ids.value[0]);
if (index !== -1) {
  dataList.value[index] = { id: ids.value[0], ...form.value };
}

相关文章:

  • 基于无人机遥感的烟株提取和计数研究
  • EX_25/2/24
  • 【ISP】畸变校正 LDC
  • Ubuntu 下 nginx-1.24.0 源码分析 - ngx_set_inherited_sockets
  • DeepSeek回答:AI时代Go语言学习路线
  • 神卓 S500 组网设备连接交换机的详细步骤
  • 从零开始玩转TensorFlow:小明的机器学习故事 6
  • 鸿蒙ArkTs如何实现pdf预览功能?
  • Spring 源码硬核解析系列专题(五):Spring Boot 自动装配的原理
  • MySQL 中表和视图的关系
  • React进阶之前端业务Hooks库(三)
  • 娛閑放鬆篇2
  • Jenkins 构建 Unity 打包 .apk 同时生成 .aab
  • 【C++】const关键字的作用及常见应用场景
  • 【UCB CS 61B SP24】Lecture 14 - Data Structures 1: Disjoint Sets学习笔记
  • Android AOSP系统裁记录
  • SV基础(一):System Verilog与Verilog核心区别详解
  • SQL笔记#集合运算
  • 事务的4个特性和4个隔离级别
  • DeepSeek开源周首日:发布大模型加速核心技术可变长度高效FlashMLA 加持H800算力解码性能狂飙升至3000GB/s
  • “十五五”规划编制工作开展网络征求意见活动
  • 张宇祥已任上海闵行区委常委、副区长
  • 瑞幸首度牵手成都国际非遗节,用一杯饮品将非遗之美推向全国
  • 事关中国,“英伟达正游说美国政府”
  • 国际博物馆日|航海博物馆:穿梭于海洋神话与造船工艺间
  • 特朗普公开“怼”库克:苹果不应在印度生产手机