ZSK6 2023-06-07 10:50 采纳率: 50%
浏览 17
已结题

js对象怎么查找属性并赋值?

类别

JavaScript

条件

1.已知一个对象form.
2.已知 对象form里面的属性key链字符串变量,例如 form.data.age 它的key链是"data.age"、form.date 它的key链是"date"

问题

我想根据 对象form的key链字符串,找到具体属性并赋值,有谁知道怎么实现吗?怎么解决啊?

  • 写回答

1条回答 默认 最新

  • 瞬间的未来式 2023-06-07 10:53
    关注

    该回答引用chatgpt:

    img

    
    function setNestedPropertyValue(obj, keyChain, value) {
      const keys = keyChain.split('.'); // 将属性键链字符串拆分为键数组
      let currentObj = obj;
    
      // 遍历键数组,逐级访问属性
      for (let i = 0; i < keys.length - 1; i++) {
        const key = keys[i];
        if (!currentObj.hasOwnProperty(key)) {
          // 如果属性不存在,可以选择在这里进行处理,例如抛出错误或创建新的属性
          return;
        }
        currentObj = currentObj[key];
      }
    
      // 设置最终属性的值
      const lastKey = keys[keys.length - 1];
      currentObj[lastKey] = value;
    }
    
    // 示例对象
    const form = {
      data: {
        age: 25
      },
      date: "2023-06-07"
    };
    
    // 根据属性键链字符串设置属性值
    const keyChain = "data.age";
    setNestedPropertyValue(form, keyChain, 30);
    
    console.log(form.data.age); // 输出: 30
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 6月27日
  • 已采纳回答 6月19日
  • 创建了问题 6月7日

悬赏问题

  • ¥100 or-tools的相关问题
  • ¥30 怎么烘焙完整模型的法线
  • ¥15 为什么提交不了?接口测试都是对的
  • ¥15 有可能用平板通过拓展坞来烧录程序吗(keil5的那种)
  • ¥15 网络分析设施点无法识别,网络构建部分有效
  • ¥15 状态图的并发态问题咨询
  • ¥15 PFC3D,plot
  • ¥15 VAE模型编程报错无法解决
  • ¥100 基于SVM的信息粒化时序回归预测,有偿求解!
  • ¥15 物体组批优化问题-数学建模求解答