javascript - 我可以从节点中的 sqlite3 数据库中获取数组而不是 JSON 数组的结果吗?
问题描述
我对此真的很陌生,我刚刚掌握了 json 数据,我希望它作为一个常规数组
loginAndDetails.get(`SELECT * FROM logTB` , (err,data) => {
console.log(data)
})
//output might be 1d or 2d
{
entry1: 'data1',
entry2: 'data2',
.,
.,
entryN: 'dataN'
}
loginAndDetails.all(`SELECT * FROM logTB` , (err,data) => {
console.log(data)
})
// alternative output:
[{
entry1: 'data1',
entry2: 'data2',
.,
.,
entryN: 'dataN'
},
{
entry1: 'data1',
entry2: 'data2',
.,
.,
entryN: 'dataN'
}]
但我已经创建了我所有的函数来使用像这样的普通 JS 数组
['data1','data2',...,'dataN']
(or)
[['data1','data2',...,'dataN'],
['data1','data2',...,'dataN']]
那么有没有办法动态转换所有数据,因为有时它可能是一个二维数组,有时它可能是一个一维数组并且可能有“n”个对象
我必须创建一个函数来构建它还是有任何其他方法
解决方案
你可以做这样的事情,它会给你一个数组数组。
var finalResult = [];
// checking if data is an array of objects
if (Array.isArray(data)){
for (var i=0; i < data.length; i++ ){
console.log(data[i]);
var result = getFlatArray(data[i]);
finalResult.push(result);
}
console.log(finalResult);
}
else{
finalResult = getFlatArray(data);
console.log(finalResult);
}
function getFlatArray(data){
var result = [];
for(var j in data){
result.push([data[j]]);
}
return result;
}
但是,如果您想访问您的 JSON 对象,您可以执行以下操作。]
对于 1d:-data.entry1
对于 2d:-data
只是一个 javascript 数组,因此您可以使用普通循环遍历它并使用数组索引访问循环内的对象。
for(var i=0; i < data.length; i++){
// access the data in the loop using array index
data[i].entry1;
}
推荐阅读
- spring-kafka - Kafka Spring:如何为 ConcurrentKafkaListenerContainerFactory 和 ConcurrentMessageListenerContainer 编写单元测试?
- c++ - 为什么在尝试使用向量或映射来保持函数指针列表与 lambda 时出现编译错误
- suitescript2.0 - Suitescript 2.0 在不同线程上提交数据
- console - 在 Electron 中,我可以从主进程访问渲染器进程中的控制台吗
- javascript - Express/Node.js 页面刷新问题
- javascript - Javascript - 如何从对象数组字段评级中获得星级?
- gitlab-ci - Gitlab-CI 自定义变量
- powershell - 在 Powershell 中需要 ForEach 循环的帮助
- batch-file - 通过for循环中的分隔符批量迭代命令输出
- python - 即使正确安装了 pip 和 mysql 连接器,我也无法在 Pycharm 上连接到 MySQL