来自数组值的Javascript动态变量名称(Appcelerator Titanium)
||
我正在使用Titanium应用程序,并且已经构建了运行sqlite数据库查询并返回结果集(数组)的功能。
我不会太在意Titaniums的细节,因为它不会对我面临的问题产生太大的影响。
基本上,任何查询都可以使用此函数执行,因此自然地,一旦执行查询,您就需要一个与某些数据库列名相对应的数据数组。这是我遇到的问题。通过钛系统的工作方式,我需要将结果推送到结果数组中,如下所示:
var resultSet = conn.execute(\'SELECT * FROM some_table WHERE parent = ?\', parent);
if (resultSet.isValidRow()) {
result = {
id: resultSet.fieldByName(\'id\'),
name: resultSet.fieldByName(\'name\'),
parent: resultSet.fieldByName(\'parent\'),
order: resultSet.fieldByName(\'order\')
};
}
好的,那就很好。但是它不够动态。当您想从具有不同字段的其他表中进行选择时会发生什么。 ID,名称,父母和订单显然无法正常工作。
我正在尝试做的是获取一个数组(我已经拥有)并将这些值用作它们的名称,如下所示:
var resultSet = conn.execute(<!-- SQL IS IN HERE -->);
var fieldCount = resultSet.fieldCount();
var fields = [];
for(i=0;i<fieldCount;i++) {
fields.push(resultSet.fieldName(i));
};
// At this point we have an array \'fields\' which contains all the field names.
var results = [];
while (resultSet.isValidRow()) {
results.push({
// START OF PROBLEM
for(i=0; i < fields.length; i++)
{
fields[i]: resultSet.fieldByName(fields[i]);
}
// END OF PROBLEM
});
resultSet.next();
};
resultSet.close();
上面注释的开始/结束显示了问题代码。我意识到它是错误的,但是无法弄清楚应该怎么做。可以说字段数组包含\'id \'和\'name \',我需要变量来覆盖这两个变量,但是它们必须是动态的-我想避免必须为每个表创建一个新的javascript函数。
我应该指出,我是一个PHP专家,我在JS方面的经验非常有限。我一直以此为契机来学习,但是我无法理解这一点!非常抱歉,如果它的解释不够清楚,希望JS专家可以在这里伸出援手!
干杯
没有找到相关结果
已邀请:
2 个回复
砷竣阿
佃蒜狗掂哥