在 Javascript 中单行定义数组

dev*_*dev 2 javascript arrays declaration

我试图在一行中声明多个数组。但我接受了这个错误。(无法设置未定义的属性“0”)

var photos,tags = new Array();

flickrJSON.items.forEach(function(item, index) {
    photos[index] = item.media.m;
    tags[index] = item.tags;
});
Run Code Online (Sandbox Code Playgroud)

为什么我会犯这个错误?有人可以解释一下吗?我该如何解决它

Cer*_*nce 6

您尝试在那里使用两个数组 - 一个名为 的数组photos和一个名为 的数组tags,因此您需要使用new Array(或者最好是[]两次

var photos = [], tags = [];
Run Code Online (Sandbox Code Playgroud)

在您的原始代码中,无论逗号后面是什么,var photos,都会导致photosis 。undefined

如果您想一次创建大量数组并且不想= []每次都重复,您可以使用Array.from解构来保持代码干燥:

const [arr1, arr2, arr3, arr4, arr5] = Array.from({ length: 5 }, () => []);
Run Code Online (Sandbox Code Playgroud)