如何将带有动态属性的对象的属性值转换为数组
解决方案
你可以使用以下两种原生JS方法实现动态转换,不管对象属性数量如何变化都能自动适配:
方法1:使用 Object.values()(推荐,写法最简洁)
该API会直接返回对象所有可枚举属性的值组成的数组,无需额外遍历:
// 你的原始对象 const origin = { titles: { dr: 'Dr', prof: 'Prof', profdr: 'Prof Dr' } } // 转换逻辑 const result = Object.values(origin.titles)
运行后result的值就是你需要的['Dr', 'Prof', 'Prof Dr']。
该语法是ES2017(ES8)标准引入的,所有现代浏览器、Node.js 7.0+版本都原生支持。
方法2:兼容旧环境的写法
如果需要兼容ES5及更早的运行环境,可以用Object.keys()配合map实现:
const result = Object.keys(origin.titles).map(key => origin.titles[key])
两种方法都完全动态适配,哪怕后续你给titles新增、删除属性,转换逻辑都不需要修改,自动返回最新的属性值数组。
内容的提问来源于stack exchange,提问作者Dušan
相关产品推荐
相关产品推荐

