javascript - 推送到数组会导致无限循环
问题描述
这是一个解决此问题的 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", ...
解决方案
我得到了什么:一个无休止的循环,在最后一天之后,它只会无限重复。
无论何时调用formatDays
它都会导致重新渲染,因为模板中显示的数据正在更改。因为formatDays
是一种方法,并且直接在模板中使用{{}}
,每次重新渲染时都会调用它。因此无限循环。
我所期望的:我的第二个数组应该填充天数的副本。
我已经更新了你的小提琴。
推荐阅读
- node.js - 静态服务器的 React 构建给出 404 错误
- azure-active-directory - ASP.Net Core Hosted Blazor Webassembly 与 Azure AD 身份验证 - 服务器和客户端应用程序的单独应用程序注册
- python - 为什么 Heroku 网站无法使用我的应用名称?[应用程序错误]
- javascript - 向左旋转给定数组项 n 位置的函数 - JavaScript
- python - 第二个清单被一遍又一遍地填写。这个python代码有什么问题?
- angular - 在 Angular 中的命名插座中导航不起作用。为什么?
- php - Magento 2 - 迁移到不同文件夹后出现 500 内部服务器错误
- node.js - 我想从浏览器中的 cookie 中获取我的 jwt 值
- r - 图例未显示手动定义的颜色
- javascript - PDF打开时为空白