jade在迭代中获取对象键名

时间:2015-11-07 09:46:48

标签: javascript json node.js pug

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

each val, index in data
    li= val.keyname??

我想要的输出是:

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

这可能吗?

我尝试使用'index',但它迭代了附加到对象的整个属性和原型函数列表,例如$__, isNew, errors, _doc, $__original_save, save, _pres, _posts, toObject, toJSON, $__isNested等。

data来自MongoDB的find查询。

在我的用例中,我事先并不知道密钥的名称。

2 个答案:

答案 0 :(得分:1)

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

如果您有最复杂的对象(如模型或集合),请使用toJSONBackbone.Model中的Backbone.Collection模式。

如果您有一个简单的对象,请使用each val, idx,如下所示:

ul
  each val, idx in data
    li= idx

完整代码:http://jsfiddle.net/tomi77/5rb5hspk/2/

答案 1 :(得分:0)

使用库UnderscoreJS的反转方法。 Underscorejs.org