[需要JavaScript Collections.js的Array.from不能正常工作

问题描述 投票:0回答:1

我正在尝试学习使用Array.from,因为我真的不喜欢先调用fill然后映射

例如,我正在转换

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()行为的任何想法?

javascript arrays collectionsjs
1个回答
0
投票

正如人们在评论中说的那样,您的代码有效。我只是将其添加为包括此代码段的答案,以便您可以自己查看。

我想问题是与您呼叫graph[1].push(1)的位置有关。我怀疑它是在无法访问graph的地方被调用的。

下面介绍的最低版本有效,因此您需要找到导致错误的最低代码版本,并且您可能会在此过程中找到答案

const tasks = 3
const graph = Array.from(Array(tasks), () => new Array())
graph[1].push(1);
console.log(graph)
© www.soinside.com 2019 - 2024. All rights reserved.