看看 javascript 中的 this 循环,以及调试器中显示的内容。由于某种原因,
item
变量出现了 4 次,但应该只有 1 次(除非我似乎遗漏了一些东西)。
您可以在右侧看到
filteredAttributes.values
是一个包含1个对象的数组。当设置断点时,它会被排序和映射,第一次进入内部循环,会显示意外的值。
这是怎么回事?!
如果您在循环内使用
var
声明 item
,则每次迭代可能会使用相同的变量,从而导致意外结果。尝试使用 let
而不是 var
来声明 item
。这确保了 item
具有块作用域,并且为每个循环迭代创建一个新的绑定,这可能会解决您的问题。