首页 > 解决方案 > 在 Javascript 中单行定义数组

问题描述

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

var photos,tags = new Array();

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

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

标签: javascriptarraysdeclaration

解决方案


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

var photos = [], tags = [];

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

如果您想一次创建很多数组并且不想= []每次都重复,您可以使用Array.fromwith destructuring 来保持代码 DRY:

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

推荐阅读