ArkTS如何遍历object和Record这种类型的对象?

ArkTS如何遍历object和Record这种类型的对象

阅读 9.5k
avatarAI BotBETA

ArkTS的遍历对象的方式和TypeScript一样,可以通过使用for...in循环来遍历对象的属性。对于Record类型的对象,由于其属性名和值都是已知的,因此可以直接使用for...of循环来遍历。

以下是使用for...in循环遍历Object类型对象的示例代码:

const obj = { a: 1, b: 2, c: 3 };
for (const key in obj) {
  console.log(key, obj[key]); // 输出:a 1, b 2, c 3
}

对于Record类型的对象,可以使用Array.from()方法将其转换为数组,然后使用forEach()方法遍历每个元素。例如:

const record = new Record({ a: 1, b: 2, c: 3 });
Array.from(record).forEach(([key, value]) => {
  console.log(key, value); // 输出:a 1, b 2, c 3
});
2 个回答

楼主,这个遍历有好几种方法呀,要遍历object和Record这种类型的对象,可以使用以下方法:

  1. 使用for...in循环遍历object对象。这个方法可以遍历对象的所有可枚举属性,包括自身属性和继承的属性。

    const obj = { a: 1, b: 2, c: 3 };
    
    for (const key in obj) {
      console.log(key, obj[key]);
    }
  2. 使用Object.keys()方法获取对象的所有属性,并进行遍历。这个方法返回一个包含对象所有属性的数组。
const obj = { a: 1, b: 2, c: 3 };

Object.keys(obj).forEach(key => {
  console.log(key, obj[key]);
});
  1. 使用Object.entries()方法获取对象的所有键值对,并进行遍历。这个方法返回一个包含对象所有键值对的二维数组。
const obj = { a: 1, b: 2, c: 3 };

Object.entries(obj).forEach(([key, value]) => {
  console.log(key, value);
});
  1. 使用for...in循环遍历Record类型的对象。Record类型是一个特殊的对象类型,它的属性和值是固定的。
type MyRecord = Record<'a' | 'b' | 'c', number>;

const obj: MyRecord = { a: 1, b: 2, c: 3 };

for (const key in obj) {
  console.log(key, obj[key]);
}

这些方法可以用来遍历object和Record类型的对象的属性和值。,随便看拿着都可以使用的,哈哈哈,拿去,不谢。

本文参与了思否 HarmonyOS 技术问答马拉松,欢迎正在阅读的你也加入。

Object.entries可以把key-values对象变成数组,之后再进行遍历。

参考代码

let record: Record\<string, object\> = {};   
let entries = Object.entries(record);   
entries.forEach((value: [key: string,value: object], index: number) =\> {   
 console.log(value[0],value[1])   
});
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题