如何解决为什么Array中的项是依赖的? JavaScript
我做到了:
a = Array(2).fill([]);
a[0].push(1);
预期结果:a = [[1],[]]
得到了:a = [[1],[1]]
为什么第二项取决于这里的第一项?
谢谢。
解决方法
对.fill()
的调用传递了一个单个空数组。因此,将同一数组放入填充数组的所有元素中。
请考虑一下,如果您调用Array(2).fill(3);
,则所有元素都将包含值3。在这里,这实际上没有什么不同。
从文档中
如果第一个参数是一个对象,则数组中的每个插槽将 引用该对象。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/fill
替代
const a = Array.from({length: 2},i => [])
a[0].push(1)
console.log(a)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。