HarmonyOS鸿蒙Next ArkTS中怎样给对象动态赋值

HarmonyOS鸿蒙Next ArkTS中怎样给对象动态赋值 业务中会存在很多场景需要给对象动态赋值。 不过目前arkts内不支持  

Object.defineProperty(obj, key, {
  value: 1
})
obj[xx] = 123  

等语法,如果有一个对象里面有50个字段。 50个字段都是可选的,如果用户传入字段就使用用户的,用户没有传入的情况下采用默认的,现在的方法好像只有一个个进行判断,有没有什么比较好的方法就行判断???

const defaultObj = {
  a: 1,
  b: 2,
  c: 3,
  ......,
  n: 100
}
const userObj = { a: 1, b: 2, c: 3 }
if (!user.xx) {
  user.xx = defaultObj.xx // 难道只能逐个判断么? 有没有比较好的方法
}

更多关于HarmonyOS鸿蒙Next ArkTS中怎样给对象动态赋值的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

尝试动态创建修改:

1、可以在创建时指定 cdata 的类型,如:const cdata:object = new Object({})

2、对 Object 对象新增修改值,可以通过如下方式进行:

const cdata:object = new Object({aaa: '232'}); // 创建时设置 aaa 属性值为'232'
cdata['aaa'] = '123'; // 修改 aaa 字段值
cdata['test'] = 'abced'; // 新建 test 属性

更多关于HarmonyOS鸿蒙Next ArkTS中怎样给对象动态赋值的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,使用ArkTS给对象动态赋值可以通过直接修改对象的属性或使用Object.assign方法实现。假设有一个对象obj,可以通过以下方式动态赋值:

  1. 直接赋值:通过点语法或方括号语法直接修改对象的属性。

    let obj = { name: "Alice" };
    obj.name = "Bob"; // 直接修改属性
    obj["age"] = 25; // 使用方括号语法动态添加属性
    
  2. 使用Object.assign:将多个源对象的属性合并到目标对象中。

    let obj = { name: "Alice" };
    Object.assign(obj, { age: 25, gender: "Male" }); // 动态添加多个属性
    
  3. 使用扩展运算符:可以合并对象并动态添加属性。

    let obj = { name: "Alice" };
    obj = { ...obj, age: 25, gender: "Male" }; // 动态添加多个属性
    

这些方法适用于在ArkTS中动态修改或添加对象属性。

在HarmonyOS鸿蒙Next的ArkTS中,可以通过以下方式给对象动态赋值:

  1. 直接使用点运算符或方括号语法:

    let obj = {};
    obj.key = 'value'; // 使用点运算符
    obj['key'] = 'value'; // 使用方括号语法
    
  2. 使用 Object.assign 方法:

    let obj = {};
    Object.assign(obj, { key: 'value' });
    
  3. 使用解构赋值:

    let obj = {};
    obj = { ...obj, key: 'value' };
    

这些方法均适用于动态添加或修改对象的属性。

回到顶部