如何循环javascript记录集中的字段名

How do you loop through the field name in javascript recordset?

本文关键字:集中 记录 字段 javascript 何循环 循环      更新时间:2023-09-26

我使用以下代码来查询使用javascript的sqlite数据库,一切工作正常:

function getQueryRecord(tx, rs) {
                var stringResult = '';
                for(i=0;i<rs.rows.length;i++)
                {
                    r =rs.rows.item(0);
                                    $('#someting').append(r['field1'] + ' ' + r['field2']);
                }
            }
            function getUserGroup()
            {
                var db = window.openDatabase("scores", "", "Previous Scores", 1024*1000);
                db.transaction(function(tx) {
                    tx.executeSql('SELECT * FROM user_group', [], getQueryRecord);
                 });
            }

是否有可能在getQueryRecord中做以下事情来循环所有字段?如果是,正确的语法是什么?

for(k=0;k<r.fields.length;i++)
{
  $('#something').append(r[k]);
}

谢谢。

您是否尝试过for...in语法:

for(k in r) {
   if (r.hasOwnProperty(k))
      $('#something').append(r[k]);
}

在循环中,k将等于第一个属性的名称,然后是第二个属性的名称,以此类推(尽管已经说了"first"answers"second",迭代的顺序是任意的)

使用.hasOwnProperty()的if语句是"可选的",这取决于你的对象结构/层次结构:它测试一个特定的属性是对象的"直接"属性还是来自原型链的某个地方的属性(注意for…In结构返回两种类型的属性)。如果你不确定你是否需要它,那么你可能需要它。

注意:此技术一般适用于JavaScript对象,而不适用于数据库对象。