Javascript jade在迭代中获取对象keyname

Javascript jade在迭代中获取对象keyname,javascript,json,node.js,pug,Javascript,Json,Node.js,Pug,我想要的输出是: var data = { thing: 'value1', thing2: 'value2', thing3: 'value3' }; each val, index in data li= val.keyname?? 东西 事情2 事情3 这可能吗 我试着只使用“index”,但它迭代了附加到对象的整个属性和原型函数列表,例如$\uuuuuuuu、isNew、errors、\u doc、$\uuuu original\u save、save、\u p

我想要的输出是:

var data = {
  thing: 'value1',
  thing2: 'value2',
  thing3: 'value3'
};

each val, index in data
    li= val.keyname??
  • 东西
  • 事情2
  • 事情3
  • 这可能吗

    我试着只使用“index”,但它迭代了附加到对象的整个属性和原型函数列表,例如
    $\uuuuuuuu、isNew、errors、\u doc、$\uuuu original\u save、save、\u pres、\u posts、toObject、toJSON、$\uuuu isNested

    数据
    来自MongoDB的
    find
    查询的一部分


    在我的用例中,我事先不知道键的名称

    使用库下划线JS的反转方法。org

    数据必须是简单的键值对象

    如果您有最复杂的对象(如模型或集合),请使用
    toJSON
    模式,如
    Backbone.model
    Backbone.collection

    如果您有一个简单的对象,请像这样使用
    每个val,idx

    <li>thing</li>
    <li>thing2</li>
    <li>thing3</li>
    

    完整代码:

    几乎。。但这假设值是唯一的,而它们肯定不是(在我的用例中)。虽然它在我给出的示例中会起作用。非常接近,但这与索引的作用相同,它也会迭代所有原型属性;正如OP.fine中所列,这里:
    {albany:'a3',penrose:'a3',christchurch:'a4'}
    ,问题是在数据传递到jade后,有一堆原型值附加到该对象,并且迭代也在进行。好的,我理解。使用
    toJSON
    模式,如
    Backbone.Model
    Backbone.Collection
    。例子:
    ul
      each val, idx in data
        li= idx