【问题标题】:How to grab a single element passed from express JSON array and output in Jade如何获取从 Express JSON 数组传递的单个元素并在 Jade 中输出
【发布时间】:2014-10-15 21:09:53
【问题描述】:

我有一个从 Express 传入 Jade 模板的数组,如下所示:

 [{ id: 11,
  firstname: 'asdfasdf',
  lastname: 'asdfasdf',
 },
 { id: 12,
  firstname: 'asdfadf',
  lastname: 'asdfasdf',
 }]

我想抓取其中一个元素并将其连同其属性一起显示在页面上。 我在这里阅读了其他几个答案,但似乎没有一个回答我的问题/正常工作。

我试过了,

#{data[0].id}
!{data[0].id}
#{data.id[0]}
data.id[0]
data[0].id

...以及无数其他组合,我怎样才能正确打印出来? 我知道我的数据对象被正确传递,因为我可以在页面的其他地方使用 for 循环遍历它。但是如果我只想从数组中获取一个元素,我该如何实现呢?

如果不循环整个 json 数组对象,这是否可能?

更新:我的问题是由于数组结构与我最初认为的不同。我的错误,访问元素的正确方法是使用

#{data[0].id}

【问题讨论】:

    标签: javascript arrays node.js express pug


    【解决方案1】:

    这是一个 JSON 对象数组,因此您需要对其进行迭代

     var newObject =  [{ id: 11,
      firstname: 'asdfasdf',
      lastname: 'asdfasdf',
     },
     { id: 12,
      firstname: 'asdfadf',
      lastname: 'asdfasdf',
     }];
    
    
    for (var i = 0; i < newObject.length; i++) {
        var object = newObject[i];
        for (var property in object) {
            alert('item ' + i + ': ' + property + '=' + object[property]);
        }
    }
    

    var newObject =  "[{ id: 11,firstname: 'asdfasdf',lastname: 'asdfasdf',},{ id: 12, firstname: 'asdfadf', lastname: 'asdfasdf',}]";
    var obj = eval(newObject);
    alert(obj[0].id);
    

    【讨论】:

    • 是的,我了解 JSON,正如我在上面的帖子中所说,我已经成功地访问了 for 循环中的每个元素。但是,我想知道是否有一种方法可以直接访问数组中的一个 json 对象,而不必先在 Jade 中遍历所有对象。
    • 如果可以将值转换为字符串,也可以使用 eval() 函数
    猜你喜欢
    • 2021-09-15
    • 2016-04-09
    • 1970-01-01
    • 2013-04-15
    • 2016-08-20
    • 2023-01-12
    • 1970-01-01
    • 2021-06-29
    • 1970-01-01
    相关资源
    最近更新 更多