在 Javascript 中单行定义数组
Defining arrays in single line in Javascript
我试图在一行中声明多个数组。但我正在接受这个错误。 (无法设置未定义的 属性 "0")
var photos,tags = new Array();
flickrJSON.items.forEach(function(item, index) {
photos[index] = item.media.m;
tags[index] = item.tags;
});
为什么我会出现这个错误?有人可以解释吗?以及如何修复它
您正在尝试使用 两个 数组 - 一个名为 photos
的数组和一个名为 tags
的数组,因此您需要使用 new Array
(或者,最好是[]
)两次:
var photos = [], tags = [];
在您的原始代码中,var photos,
将导致 photos
成为 undefined
,无论逗号后面是什么。
如果您想一次创建一个 lot 数组并且不想每次都重复 = []
,您可以使用 Array.from
解构以保持代码干燥:
const [arr1, arr2, arr3, arr4, arr5] = Array.from({ length: 5 }, () => []);
使用 ES6 你可以:
let [photos, tags] = [[], []];
我试图在一行中声明多个数组。但我正在接受这个错误。 (无法设置未定义的 属性 "0")
var photos,tags = new Array();
flickrJSON.items.forEach(function(item, index) {
photos[index] = item.media.m;
tags[index] = item.tags;
});
为什么我会出现这个错误?有人可以解释吗?以及如何修复它
您正在尝试使用 两个 数组 - 一个名为 photos
的数组和一个名为 tags
的数组,因此您需要使用 new Array
(或者,最好是[]
)两次:
var photos = [], tags = [];
在您的原始代码中,var photos,
将导致 photos
成为 undefined
,无论逗号后面是什么。
如果您想一次创建一个 lot 数组并且不想每次都重复 = []
,您可以使用 Array.from
解构以保持代码干燥:
const [arr1, arr2, arr3, arr4, arr5] = Array.from({ length: 5 }, () => []);
使用 ES6 你可以:
let [photos, tags] = [[], []];