HarmonyOS 鸿蒙Next:使用Object.keys循环对象获取value值,但pa[propName]一直报错,这是什么原因
HarmonyOS 鸿蒙Next:使用Object.keys循环对象获取value值,但pa[propName]一直报错,这是什么原因
interface info {
name:string,
account:string
}
let pa:info = {
name:‘dwed’,
account:‘123456’
}
for(const propName of Object.keys(pa)){
const value:string = pa[propName]
}
for in 都不支持了
那for of就是支持的吗?而且那时候11还没对外发布,9的时候for in还是可以用的
现在API 12 可以使用Object()就不报错了。 interface info { name:string, account:string }
let pa:info = { name:‘dwed’, account:‘123456’ } for(const propName of Object.keys(pa)){ const value:string = Object(pa)[propName] }
改代码为:
for(const propName in pa){
const value:string = pa[propName]
console.log(`value: ${value}`);
}
对象 先转 JSON 再转 object 从 object 取
let pa_obj:object = json.parse(json.stringify(pa));
for (let str of object.keys(pa)) {
let value = pa_obj[str]
}
在HarmonyOS(鸿蒙)开发环境中,如果在使用Object.keys
循环对象并尝试通过pa[propName]
访问值时遇到错误,通常可能是以下几个原因:
- 对象
pa
未正确定义或初始化:确保pa
在访问前已被正确赋值为一个对象。 - 属性名
propName
在对象中不存在:检查propName
确实存在于pa
对象中。 - 作用域问题:确保
pa
和propName
在当前的作用域中是可访问的。 - 类型错误:如果
pa
不是对象或propName
不是字符串,将导致错误。
请检查这些可能的原因,并相应地调整代码。如果问题依旧没法解决请加我微信,我的微信是itying888。