OpenHarmony开发者论坛

标题: ArkTS展开运算符不支持展开对象属性,如何快速实现更换某个属性名称? [打印本页]

作者: mean    时间: 2023-12-8 18:42
标题: ArkTS展开运算符不支持展开对象属性,如何快速实现更换某个属性名称?
发送请求后,从后端获取到的数据,需要将某个属性名称更换。例如以下的示例,将result对象中的xingbie改为sex
以前在应用开发,这么写是没问题的

let result= {
  name: 'John',
  age: 30,
  xingbie: 'male'
};
let { xingbie: sex, ...rest } = obj;
let user = { ...rest, sex };
console.log(user); // { name: 'John', age: 30, sex: 'male' }


现在ArkTS优化之后,类型变得更严格。ArkTS仅支持使用展开运算符展开数组、Array的子类和TypedArray,不支持展开对象属性了。**如果有很多的属性,除了遍历一个个属性拷贝到另一个对象,要如何实现上述效果呢?




作者: 马迪    时间: 2023-12-9 15:30
简单一点的话,通过
  1. JSON.parse(JSON.stringify(result).replace(/xingbie/g,'sex'))
复制代码

但这种方式数据里有xingbie的话,会存在bug

其他的目前只想到for..in的方式遍历属性。 或者是找下有没类似java的库,支持通过注解,标识对象实际的属性名




欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/) Powered by Discuz! X3.5