HarmonyOS 鸿蒙Next关于 Map和Record如何使用
HarmonyOS 鸿蒙Next关于 Map和Record如何使用
## Map 类型 例如:
let obj = new Map<string,Object>(); obj[‘aaa’] = ‘bbb’;
obj[‘ccc’] = ‘123456’; let jsonStr = JSON.stringify(obj)
<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>
这样写法是可以将 obj 对象 通过 JSON 转成 json字符串,但是官方文档很少看到这样写法,这样更偏向js的方式,是否已经被淘汰的语法 其次,如果采用 map.set 方式,则无法通过 JSON 来转化
obj.set(‘name’, ‘34567’); obj.set(‘age’, ‘12345’);
<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>
这样 无法将设置进去的 key-value 通过 JSON 转出来 问题:正对第一种写法是否准确,是否符合鸿蒙应用开发规范,第二 Map 对象有没有官方说明文档, 并未找到Map的介绍. ## Record 类型 Recrod 类型有没有相关文档说明,发现在例子中大量使用到,这个其实也是键值对的对象,这个和Map 有什么区别?目前能知道是无法通过 new出一个对象,但是下列使用是否符合规范
let rcd = { ‘a’:1, ‘b’:‘123456’ } as Record<string, Object>; rcd[‘ddd’] = ‘test’ // 是否可以这样新增加一个 key-value let jsonText = JSON.stringify(rcd)
<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>
更多关于HarmonyOS 鸿蒙Next关于 Map和Record如何使用的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
可参考以下demo:
let info:Map<string, Object> = new Map<string, Object>()
info.set(“userType”, 1)
info.set(“smesisUserId”, ‘userInfo.userInfo.smeUserId’)
info.set(“originUrl”, ‘555’)
info.set(“userId”, ‘dfgerg’)
let jsonString = ‘’
try {
let jsonObject:Record<string,Object> = {};
info.forEach((value,key) => {
if (key != undefined && value != undefined) {
jsonObject[key] = value;
}
})
jsonString = JSON.stringify(jsonObject);
console.debug(<span class="hljs-built_in">JSON</span>字符串:${jsonString}
)
} catch (e) {
console.debug(‘err’)
}
<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>
Record遵循TS中的语义,没有变化;
Record不是数据结构(没有方法、属性),是TS中的一个类型
可参考文档(对象字面量章节中的Record类型的对象字面量):
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/introduction-to-arkts-V13
更多关于HarmonyOS 鸿蒙Next关于 Map和Record如何使用的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS中,Map和Record的使用是基于JavaScript标准的扩展,特别是在鸿蒙应用开发中,它们有特定的使用方法和注意事项。
对于Map,你可以使用new Map()构造函数创建一个Map对象,并通过set方法为其设置键值对。一旦设置了值,必须使用get方法来检索。Map对象支持多种遍历方式,取决于你是如何赋值的。对于通过set方法赋值的Map,推荐使用forEach来进行遍历;如果Map是通过索引或其他方式赋值的,则可能需要使用其他遍历方法。
至于Record,在HarmonyOS的上下文中,它并不是一个直接对应的类型或概念。如果你在鸿蒙应用开发中需要处理类似Record的结构,可以考虑使用对象(Object)或Map来模拟。对象在JavaScript中本质上就是键值对的集合,可以很方便地用来存储和访问数据。
如果在具体使用过程中遇到问题,建议查阅HarmonyOS的官方文档或示例代码,以获得更详细和准确的信息。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。