将数组存储在数据中并在手柄中显示

时间:2016-07-11 08:14:25

标签: javascript arrays asynchronous request handlebars.js

在下面的代码段中需要一些帮助。 目标:如何在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为数组时查询的最后一个对象。

修改

数组已修复,现在的问题是如何使用快速手柄显示html中的每个项目

我试图使用{{#each info.nick}}{{#list info.nick}}{{info.nick.[0]}}等,但它无效。

  

我有阵列[ 432, 3, 104, 222, 30, 11, 62, 421, 17, 412 ],我会使用快速把手展示每一个。

2 个答案:

答案 0 :(得分:0)

仅使用id ge 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); } }); }, 属性 :

DesiredCapabilities caps = DesiredCapabilities.chrome();
caps.setCapability("chrome.switches", Arrays.asList("--disable-javascript"));

答案 1 :(得分:0)

您正在重置每个循环上的数组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是一个浅层副本。