簡體   English   中英

將數組存儲在數據中並在車把中顯示

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM