Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 推动数组会导致无限循环_Javascript_Arrays_Vue.js_Vuejs2 - Fatal编程技术网

Javascript 推动数组会导致无限循环

Javascript 推动数组会导致无限循环,javascript,arrays,vue.js,vuejs2,Javascript,Arrays,Vue.js,Vuejs2,下面是一个解决此问题的JSFIDLE,但请小心,因为它包含无休止的循环,并且如果打开控制台,会使浏览器选项卡延迟并最终冻结: 阵列: days: [ "monday", "tuesday", "wednesday", "thursday", "friday", "saturday" ], openingDays: [] 模板: {% for day in days %} {[ formatDays(day) ]} {% endfor %} formatDay

下面是一个解决此问题的JSFIDLE,但请小心,因为它包含无休止的循环,并且如果打开控制台,会使浏览器选项卡延迟并最终冻结:

阵列:

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", ...
我得到了什么:一个无休止的循环,在最后一天之后,它会无限重复自己

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

我所期望的:我的第二个数组应该填充一份天的副本

我已经更新了你的密码

我得到了什么:一个无休止的循环,在最后一天之后,它会无限重复自己

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

我所期望的:我的第二个数组应该填充一份天的副本


我已经更新了你的密码

在formatDays函数中打印消息,并检查formatDays函数的使用次数calling@VijayKrishna这被称为无限时间,但我不明白为什么。模板中translateDays函数旁边的这一部分是唯一出现的,translateDays按预期打印6次。如果我从formatDays中删除Array.push,它也会打印6次。@VijayKrishna我添加了一个小JSFIDLE来显示问题(小心,无休止的循环可能会使浏览器延迟):无论何时调用
formatDays
,它都会在模板中显示的数据发生更改时导致重新渲染。由于
formatDays
是一种方法,直接在模板中使用
{{}
在每次重新渲染时都会调用它。因此,无限循环。您试图获得的用例到底是什么?我已经更新了你的密码。这就是你想要的吗?@VamsiKrishna,多亏你的解释,我现在理解了这个问题,你的例子很好,我可以根据我的需要调整它。如果您将评论复制到答案,我会将其标记为正确。请在formatDays函数中打印消息,并检查formatDays函数的使用次数calling@VijayKrishna这被称为无限时间,但我不明白为什么。模板中translateDays函数旁边的这一部分是唯一出现的,translateDays按预期打印6次。如果我从formatDays中删除Array.push,它也会打印6次。@VijayKrishna我添加了一个小JSFIDLE来显示问题(小心,无休止的循环可能会使浏览器延迟):无论何时调用
formatDays
,它都会在模板中显示的数据发生更改时导致重新渲染。由于
formatDays
是一种方法,直接在模板中使用
{{}
在每次重新渲染时都会调用它。因此,无限循环。您试图获得的用例到底是什么?我已经更新了你的密码。这就是你想要的吗?@VamsiKrishna,多亏你的解释,我现在理解了这个问题,你的例子很好,我可以根据我的需要调整它。如果你把你的评论复制到一个答案上,我会把它标记为正确的。