Dexie技术问题:如何仅查询指定列并返回纯值数组而非对象数组?
只提取指定列的纯值数组解决方案
从你的代码风格判断,你使用的是Dexie.js库,以下两种方法可以实现仅获取sample列的纯值数组:
方法1:获取结果后用Array.map过滤
这是最直接的实现方式,先拿到完整对象数组,再映射提取目标字段:
const results = await useDatabase.data.where("ts").between(ms - 1000, ms).toArray(); const sampleValues = results.map(item => item.sample); // sampleValues 格式为 [0, ...]
方法2:用.each()遍历收集(适合大数据集)
如果数据集较大,不想一次性加载所有完整对象到内存,可以通过.each()逐个遍历并收集目标字段:
const sampleValues = []; await useDatabase.data.where("ts").between(ms - 1000, ms).each(item => { sampleValues.push(item.sample); }); // 遍历完成后sampleValues即为目标数组
补充说明
Dexie没有直接返回单字段纯数组的内置API,所以上述两种是最常用的方案。客户端层面的映射操作开销极低,除非处理超大规模数据,否则第一种方法完全够用。
内容的提问来源于stack exchange,提问作者Imnotapotato
相关产品推荐
相关产品推荐

