forloop的最后一次迭代修改了vue中的最终输出

时间:2018-03-31 14:22:47

标签: javascript vue.js axios

我是Vue的新手,所以不知道如何解决这个让我先显示代码然后问题,我用的是Vue-Good-table

  methods:{

         getTotals(){
            var self = this;
            var new1=[];
            this.$http.get('http://localhost:3000/api/purchases')
            .then(function (response) {
              console.log("response.data value")
              console.log(response.data)
                for (var i = 0; i < response.data.length; i++) {
                   var item1=JSON.parse(response.data[i].pur_items);
                     console.log("item1 for index i time" +i)
                      console.log(item1)

                      new1=item1

                }
               console.log("final output")
               console.log(new1)


            })

        },

},

这是for循环的控制台日志 enter image description here 现在我的问题是,不是在最终输出时得到5个数组(即在new1) 它总是显示2个数组,即在最后一次迭代中它有2个数组,我最终得出任何想法我做错了

2 个答案:

答案 0 :(得分:2)

鉴于您的代码,最后new1包含最后一次迭代的数组是正常的。

您应尝试将new1 = item1;替换为new1 = new1.concat(item1);

有关Array原型方法的详细信息,建议您查看doc on Mozilla Developer Network

答案 1 :(得分:0)

您正在每次迭代时替换数组,但是您应该将它们连接起来。

&#13;
&#13;
private static String escapeHTMLJSON(String string) {
    return escapeJson(escapeHtml4(string));
}
&#13;
&#13;
&#13;