JavaScript初学者求教:将对象属性值转为数组的更优方法
优化对象属性值转数组的简洁方案
你的实现逻辑没问题,但JavaScript确实有更简洁的内置方法可以直接完成这个需求,不用手动写循环:
核心方案:Object.values()
直接用Object.values()方法,它会返回一个包含对象所有可枚举属性值的数组,完全匹配你的需求,一行代码就能替代整个循环:
const datos = { nombre:"Kurosaki", apellido:"Ichigo", edad:20, altura:180, eresDesarrollador:false, } const array = Object.values(datos); console.log(array); // 输出 [ 'Kurosaki', 'Ichigo', 20, 180, false ]
拓展相关方法
如果之后需要同时获取属性名和对应值,可以用Object.entries(),它返回的是二维数组,每个子数组是[属性名, 属性值]的结构:
const entries = Object.entries(datos); console.log(entries); // 输出 [['nombre','Kurosaki'], ['apellido','Ichigo'], ['edad',20], ['altura',180], ['eresDesarrollador',false]]
如果只需要提取属性名组成数组,用Object.keys()即可:
const keys = Object.keys(datos); console.log(keys); // 输出 ['nombre', 'apellido', 'edad', 'altura', 'eresDesarrollador']
对比原实现
你手动写的循环逻辑是正确的,但Object.values()是语言原生提供的标准方法,代码更简洁易读,还能避免手动维护索引变量i的麻烦,日常开发里优先用这种原生方法更高效。
内容的提问来源于stack exchange,提问作者Arrow3847
相关产品推荐
相关产品推荐

