【发布时间】:2019-11-09 21:37:56
【问题描述】:
我正在尝试学习使用 Array.from,因为我真的不喜欢先调用填充然后再映射
例如我正在转换
const tasks = 3
const graph = Array(tasks).fill(0).map(() => Array())
进入
const graph = Array.from(Array(tasks), () => new Array())
但我收到以下错误
graph[1].push(1)
^
TypeError: Cannot read property 'push' of undefined
我在另一个帖子上看到有人发帖
var arr = Array.from(Array(2), () => new Array(4));
arr[0][0] = 'foo';
console.info(arr);
这也会抛出
arr[0][0] = 'foo';
^
TypeError: Cannot set property '0' of undefined
逐行测试后,似乎这一行打破了它
const Deque = require('collections/deque')
知道为什么https://www.collectionsjs.com 会破坏 array.from() 行为吗?
【问题讨论】:
-
@Pointy 它是一个简单的整数,上面添加以供参考
-
对,我无法重现问题,
Array.from(Array(tasks), () => new Array())正确创建了一个数组数组。 -
@Pointy 然后你能像上面那样执行推送或设置一个值吗?我看到我得到一个长度等于“任务”的数组,但项目未定义
-
是的,您的代码运行良好。您可以在开发者控制台中自行尝试。
标签: javascript arrays collectionsjs