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

循环遍历把多维数组中的某个值改成需要的值

如何循环遍历把多维数组中的某个值改成需要的值

递归函数的用法
function replaceValueInNestedObjects(data, key, oldValue, newValue) {
    if (Array.isArray(data)) {
        // 如果数据是一个数组,则遍历它的每个元素
        data.forEach(item => replaceValueInNestedObjects(item, key, oldValue, newValue));
    } else if (typeof data === 'object' && data !== null) {
        // 如果数据是一个对象,则遍历它的每个属性
        Object.keys(data).forEach(k => {
            if (k === key && data[k] === oldValue) {
                // 如果当前键和值匹配,则替换为新的值
                data[k] = newValue;
            } else {
                // 否则,递归检查当前属性的值
                replaceValueInNestedObjects(data[k], key, oldValue, newValue);
            }
        });
    }
}

// 示例多层嵌套对象数组
const nestedData = [
    { id: 1, value: 5 },
    [
        { id: 2, value: 5 },
        { id: 3, value: 10 }
    ],
    {
        id: 4,
        value: 5,
        nested: [
            { id: 5, value: 5 },
            { id: 6, value: 15 }
        ]
    }
];

// 调用函数
replaceValueInNestedObjects(nestedData, 'value', 5, 10);

// 打印结果
console.log(nestedData);
data: 需要被遍历的数据。
key: 需要被修改的属性名。
oldValue: 需要被替换的旧值。
newValue: 新的值。
函数首先检查 data 是否是一个数组或对象。如果是数组,它会遍历每个元素并递归调用自身。如果是对象,它会遍历每个属性,并检查属性名是否匹配 key。如果匹配并且属性值等于 oldValue,则将其替换为 newValue。如果不匹配,或者属性值本身也是一个对象或数组,则递归调用 replaceValueInNestedObjects 函数。这个函数可以处理任意深度的嵌套结构。你可以根据需要调整它来满足你的具体需求

http://www.kler.cn/news/317464.html

相关文章:

  • 【计算机网络 - 基础问题】每日 3 题(十一)
  • 《深度学习》—— PyTorch的介绍及PyTorch的CPU版本安装
  • 把任务管理器里面的vmware usb arbitrition停了,虚拟机一直识别不到手机设备了
  • vue上传预览CAD文件
  • Java中ArrayList和LinkedList的比较
  • 【STM32开发笔记】移植AI框架TensorFlow到STM32单片机【上篇】
  • 第九节 Opencv自带颜色表操作
  • Unity using API openai Error en la solicitud: HTTP/1.1 400 Bad Request
  • 本地搭建我的世界服务器(JAVA)简单记录
  • JSP(Java Server Pages)基础使用
  • 打破网络安全域限制:跨区域文件传输的创新解决方案
  • Unity项目的脚本继承关系
  • 如何编写自己的Arduino库?
  • git reset 命令
  • 封装 WBXpopup 组件
  • 【C#】垃圾回收
  • 项目总结,路径匹配的业务逻辑
  • Docker使用指南
  • HTML常用的文本标签
  • Docker + Win 10 学习记录
  • OpenAI GPT o1技术报告阅读(3)-英文阅读及理解
  • 828华为云征文 | 云服务器Flexus X实例:RAG 开源项目 FastGPT 部署,玩转大模型
  • 数据结构-C语言实现线性表的顺序存储结构
  • Python Web日志管理与监控实践指南
  • OpenCV特征检测(12)检测图像中的潜在角点函数preCornerDetect()的使用
  • 使用ffmpeg实现音视频文件格式转换
  • C语言从头学62——学习头文件stdlib.h(一)
  • 如何通过蜂巢(容器安全)管理内部部署数据安全产品与云数据安全产品?
  • 【Android】 IconFont的使用
  • 一体化运维监控管理平台的全面监控能力