HarmonyOS鸿蒙Next中ArkTS如何遍历类对象属性值?
HarmonyOS鸿蒙Next中ArkTS如何遍历类对象属性值?
Object.keys 是获取属性名
Object.values 是获取属性值
有同时获取key 和 value的方法吗
4 回复
class MyObject {
a: number = 0;
b: number = 0;
c: boolean = false;
d: string = ''
}
let obj:MyObject = new MyObject();
obj.a = 1;
obj.b = 2;
obj.c = true;
obj.d = 'abc';
let entries:[string, object][] = Object.entries(obj);
entries.forEach((value: [key: string,value: object], index: number) => {
console.log(value[0],value[1])
});
可以参考上面示例
更多关于HarmonyOS鸿蒙Next中ArkTS如何遍历类对象属性值?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
Object.entries(obj)可以吧
let map: Map<string, object> = new Map<string, object>(Object.entries(obj))
在HarmonyOS鸿蒙Next中,使用ArkTS遍历类对象属性值可以通过Reflect.ownKeys和Object.getOwnPropertyDescriptors方法实现。首先,通过Reflect.ownKeys获取对象的所有属性键,然后使用Object.getOwnPropertyDescriptors获取每个属性的描述符。通过遍历这些键和描述符,可以访问每个属性的值。
例如:
class MyClass {
prop1: string = "value1";
prop2: number = 123;
}
const obj = new MyClass();
const keys = Reflect.ownKeys(obj);
keys.forEach(key => {
const descriptor = Object.getOwnPropertyDescriptor(obj, key);
if (descriptor && !descriptor.get) {
console.log(`Key: ${String(key)}, Value: ${obj[key]}`);
}
});
这段代码会输出MyClass实例的所有属性及其值。通过这种方式,可以在ArkTS中遍历类对象的属性值。
在HarmonyOS鸿蒙Next中,使用ArkTS遍历类对象属性值可以通过反射机制实现。首先,使用Object.keys()获取对象的所有属性名,然后通过for...of循环遍历这些属性名,并使用obj[key]获取每个属性的值。示例代码如下:
class MyClass {
name: string = "John";
age: number = 30;
}
let obj = new MyClass();
for (let key of Object.keys(obj)) {
console.log(key + ": " + obj[key]);
}
这将输出对象的属性名和对应的值。

