这是一个存在此问题的jsfiddle,但请小心,因为它包含无限循环,并且如果您打开控制台,会使浏览器选项卡滞后并最终卡住:https://jsfiddle.net/evx1j6yf/1/
数组:
days: [
"monday",
"tuesday",
"wednesday",
"thursday",
"friday",
"saturday"
],
openingDays: []
模板:
{% for day in days %}
{[ formatDays(day) ]}
{% endfor %}
格式日期:
formatDays(day) {
message = translateDays(day);
openingDays.push(message);
}
我的期望:我的第二个数组应该填充日期的副本。
我得到的:一个无限循环,在最后一天之后,它会无限重复。
控制台日志:
["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", ...
最佳答案
What i got: an endless loop where after the last day, it just repeats itself ad infinitum.
每当您调用 formatDays
时,它都会导致重新渲染,因为模板中显示的数据正在更改。由于 formatDays
是一种方法,并使用 {{}}
在模板中直接使用,因此每次重新渲染时都会调用它。因此无限循环。
What I expected: My second array should be filled with a copy of the days.
我已经更新了您的fiddle 。
关于javascript - 插入数组会导致无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50907002/