如何将JavaScript键值对象转换为仅包含对应值的一维数组
问题原因
你写的map回调中把每个属性值额外套了一层方括号,所以每个返回结果都是独立子数组,最终得到的就是二维数组结构。
解决方法
方法1(最简写法,支持ES2017及以上环境)
直接使用JS内置的Object.values()方法,会直接返回对象所有可枚举属性值组成的一维数组:
const obj = {score: 77, id: 166}; const result = Object.values(obj); // result 输出为 [77, 166]
方法2(兼容旧环境,沿用Object.keys写法)
去掉map回调里包裹值的方括号即可:
const obj = {score: 77, id: 166}; const result = Object.keys(obj).map((key) => obj[key]); // result 输出为 [77, 166]
内容的提问来源于stack exchange,提问作者Sai Krishnadas
相关产品推荐
相关产品推荐

