[英]Storing arrays in data and showing it in handlebars
在下面的代碼段中需要一些幫助。 目標:如何將數組存儲在data.nick中並在車把中顯示(分別顯示)?
JS:
function(data, callback){
var URL = 'url';
request(URL, function(err, response, body) {
if(response.statusCode == 200){
var json = JSON.parse(body);
for(var i = 0; i < json['nick'].length; i++){
var s = [];
s = json['nick'][i].id;
}
data.nick = s;
console.log(data.nick);
callback(null,data);
}
});
},
問題: data.nick
僅存儲s
是數組時最后查詢s
對象。
編輯:
固定數組,現在的問題是如何使用express-handlebars顯示html中的每個項目
我試圖使用{{#each info.nick}}
, {{#list info.nick}}
, {{info.nick.[0]}}
等,但是它不起作用。
我有數組
[ 432, 3, 104, 222, 30, 11, 62, 421, 17, 412 ]
,我將使用express-handlebars展示每個數組。
使用Array.map
僅顯示id
屬性:
function(data, callback){
var URL = 'url';
request(URL, function(err, response, body) {
if(response.statusCode == 200){
var json = JSON.parse(body);
data.nick = json['nick'].map(function(e,i){return e.id});
console.log(data.nick);
callback(null,data);
}
});
},
您正在將數組s
重置為每個循環為空。 除此之外,您沒有在數組中添加項目,而是在使用單個值json['nick'][i].id
覆蓋數組。 這就是為什么您只看到最后一個項目的原因,因為其他所有項目都丟失了。 您將需要在for循環之前定義數組,並使用.push()
向其中添加一個項目:
...
var s = [];
for(var i = 0; i < json['nick'].length; i++){
s.push(json['nick'][i].id);
}
data.nick = s;
...
請注意, data.nick = s
是淺表副本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.