推送到阵列导致无限循环

时间:2018-06-18 10:04:34

标签: javascript arrays vue.js vuejs2

这是一个有这个问题的jsfiddle,但请小心,因为它包含无限循环并使浏览器选项卡滞后并最终冻结,如果您打开控制台:https://jsfiddle.net/evx1j6yf/1/

阵列:

days: [
  "monday",
  "tuesday",
  "wednesday",
  "thursday",
  "friday",
  "saturday"
],

openingDays: []

模板:

{% for day in days %}
    {[ formatDays(day) ]}
{% endfor %}

formatDays:

 formatDays(day) {
     message = translateDays(day);
     openingDays.push(message);
 }

我的期望:我的第二个阵列应填充一份日期副本 我得到了什么:一个无限循环,在最后一天之后,它只是无限地重复着。

Console.log:

["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", ...

1 个答案:

答案 0 :(得分:2)

  

我得到了什么:一个无限循环,在最后一天之后,它只是无限地重复着自己。

每当您调用formatDays时,都会导致重新渲染,因为正在更改模板中显示的数据。由于formatDays是一种方法,并且使用{{}}直接在模板中使用,因此每次重新渲染时都会调用它。因此无限循环。

  

我的期望:我的第二个数组应填充日期副本。

我已更新您的fiddle