如何将含RowDataPacket的数组转换为仅存值的列表?
提取RowDataPacket数组的字段值生成纯值列表
针对Node.js中mysql模块返回的RowDataPacket对象数组,要提取其中id_name字段的值、生成仅包含值的数组,直接用数组map()方法即可实现:
基础用法
// 原始数组 const originalData = [ RowDataPacket { id_name: 'foo' }, RowDataPacket { id_name: 'bar' } ]; // 提取值生成新数组 const valueList = originalData.map(item => item.id_name); // 结果:['foo', 'bar']
容错处理(避免无此字段的对象报错)
如果数组中可能存在缺失id_name的对象,可以添加可选链操作符做兼容:
const valueList = originalData.map(item => item?.id_name || '');
解构赋值写法
也可以用对象解构的方式简化代码:
const valueList = originalData.map(({ id_name }) => id_name);
RowDataPacket本质是对普通对象的封装,以上方法都能直接读取其属性值,最终得到仅包含字段值的纯数组。
内容的提问来源于stack exchange,提问作者Linda Daouadji
相关产品推荐
相关产品推荐

