forEach 循环后数组赋值出现奇怪行为
2019-11-26
61
var p = [2, 3, 6]
var t=0
var t1 = 1
var t2 = 100
var t3 = 200
p.forEach(function () {})
[t1, t2, t3] = [3, 4, 5]
错误看起来像:
Uncaught TypeError: Cannot set property '200' of undefined
这看起来很奇怪。有什么办法吗?
更新:
目的:在 foreach 之后测试变量数组赋值,此代码仅用于测试
详细信息:
- 在 foreach 之后,如果定义新变量获取 [3,4,5],则没有问题。它只是 碰巧使用在 foreach 之前定义的 [t1,t2,t3]。无论 foreach 是否停止,都没关系。
- 使用 for 循环一切正常
感谢您的帮助。@Madison Courto 我试过了,但为什么呢?
2个回答
这是因为它仍在尝试运行
forEach
循环。
如果您要执行
p.forEach(function () {});
,您会停止它。
但我不明白其目的。
Nathan
2019-11-26
我将进行尝试并假设您希望做这样的事情,无论如何这都会解决异常。
var p = [2, 3, 6];
var t = 0;
var t1 = 1;
var t2 = 100;
var t3 = 200;
p.forEach((number) => console.log(number));
p = [t1, t2, t3] = [3, 4, 5];
p.forEach((number) => console.log(number));
Madison Courto
2019-11-26