如何将含单个多键对象的数组转换为仅保留数值键值对的多对象数组
如何将单对象数组转换为数值键值对的对象数组?
我有一个仅包含单个对象的数组:
FirstArray = [{ "category": "None", "ARFE": 553.5, "BV": 900, "RF rfeer": 0, // 更多键值对 }]
需要将其转换为仅包含数值类型键值对的对象数组,每个对象包含name(原键名)和value(原数值)字段:
NewArray = [{ name: "ARFE", value: 553.5 }, { name: "BV", value: 900 }, { name: "RF rfeer", value: 0 }, // 更多转换后的对象 ]
注意:非数值类型的键值对(比如"category": "None")需要被排除。
实现代码
// 取出数组中的唯一源对象 const sourceObj = FirstArray[0]; // 完成转换与过滤 const NewArray = Object.entries(sourceObj) .filter(([_, value]) => typeof value === 'number') .map(([name, value]) => ({ name, value }));
代码说明
- 获取源对象:由于
FirstArray仅包含一个对象,直接通过索引[0]取出。 - 拆分键值对:
Object.entries()将源对象转换为[键名, 对应值]格式的数组,方便后续处理。 - 过滤非数值项:
filter()方法筛选出值的类型为number的键值对,自动排除字符串、对象等非数值类型的条目。 - 重构对象结构:
map()方法将每个符合条件的键值对转换为{ name: 原键名, value: 原数值 }的新对象,最终组合成目标数组。
内容的提问来源于stack exchange,提问作者naru-magi
相关产品推荐
相关产品推荐

