JavaScript 对象按字母顺序排列

标签 javascript node.js object web-sql node-webkit

这是我正在构建的 Node Webkit WebSQL 包装器的摘录,但我遇到了问题。请参阅<----下面一行。

get_columns是一个简单的 JavaScript 数组:

['id','group_name','description']

但是当它们从数据库中出来时,对象(又名 results.rows.item(i) ):

{'description','group_name','id'}

这是因为浏览器或 JavaScript 希望按字母顺序对所有对象进行排序吗?

db.transaction(function(tx) {
    var sql = 'SELECT ' + get_columns + ' FROM ' + table;
    tx.executeSql(sql, [], function(tx, results) {
        if (results.rows.length) {
            for (var i = 0; i < results.rows.length; i++) {
                _data.push(results.rows.item(i)); // <---- columns from WebSQL are in alphabetical order, so not cool. 
            }
        }
        deferred.resolve(_data);
    });
});

我的想法是处理该对象并将该对象的值作为每个键的值放入我的数组中。

最佳答案

使用 JSON.stringify 将结果作为第一个参数,将数组作为第二个参数来强制执行顺序:

function foo(get_columns)
  {
  var results = {"a":1,"b":2,"c":3};

  _data = JSON.stringify(results, get_columns);
  return _data;
  }

foo(['c','a','b'])

引用文献

关于JavaScript 对象按字母顺序排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21789395/

相关文章:

flash - <object> 标签中的 classid 有什么作用?

javascript - 如何在 AngularJS 中将数据从父级发送到子级

javascript - 如何防止 JQuery 按钮提交我的表单?

javascript - 在 Openshift 上热部署 node.js 应用程序时究竟发生了什么?

javascript - 对象计时器无法正常工作(暂停按钮、播放按钮)

java - 如何创建一个对象,将其设置为与另一个对象完全相同,并修改它而不影响循环内的旧对象?

javascript - 在 JavaScript 中计算 EXIF 数据顶点值

node.js - 当请求超时时,如何停止 Express 中的进程?

node.js - 从 Node.js 发出网络请求时如何指定网络接口(interface)?

javascript - Expressjs : issue with image file encoding during res. 下载