• Lv0
    粉丝4

积分341 / 贡献0

提问49答案被采纳13文章1

作者动态

ArkTS展开运算符不支持展开对象属性,如何快速实现更换某个属性名称?

mean 显示全部楼层 发表于 2023-12-8 18:42:52
发送请求后,从后端获取到的数据,需要将某个属性名称更换。例如以下的示例,将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,不支持展开对象属性了。**如果有很多的属性,除了遍历一个个属性拷贝到另一个对象,要如何实现上述效果呢?



code.zip

280 Bytes, 阅读权限: 50, 下载次数: 2

您尚未登录,无法参与评论,登录后可以:
参与开源共建问题交流
认同或收藏高质量问答
获取积分成为开源共建先驱

精彩评论1

马迪

沙发 发表于 2023-12-9 15:30:22
简单一点的话,通过
  1. JSON.parse(JSON.stringify(result).replace(/xingbie/g,'sex'))
复制代码

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

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

Copyright   ©2023  OpenHarmony开发者论坛  京ICP备2020036654号-3 |技术支持 Discuz!

返回顶部