我的手上真的很糟糕,确实很糟糕。
我正在尝试使用具有唯一名称的数组创建一个数组。 问题是我只是覆盖了相同的Eventarrayarray!
var Eventarray = new Array(); var Eventarrayarray = new Array();
for(var f = 0; f< data.events.event.length; f ++){
if(data.events.event[f].hasOwnProperty('title')) { Eventarrayarray["marker"] = marker[f]; Eventarrayarray["content"] = content[f]; Eventarrayarray["title"] = data.events.event[f].title; Eventarrayarray["description"] = data.events.event[f].description; Eventarrayarray["start_time"] = data.events.event[f].start_time; Eventarrayarray["venue"] = data.events.event[f].venue_name; Eventarrayarray["city"] = data.events.event[f].city; Eventarrayarray["state"] = data.events.event[f].state; Eventarray[f] = Eventarrayarray; }
}
的console.log(Eventarray);
提供什么?!!
答案 0 :(得分:0)
我还没有听说过doosy,但我认为你需要为每次迭代实例化一个单独的Eventarrayarray
数组实例:
for (var f = 0; f < data.events.event.length; f++) {
if (data.events.event[f].hasOwnProperty('title')) {
var Eventarrayarray = new Array();
Eventarrayarray["marker"] = marker[f];
...
Eventarray[f] = Eventarrayarray;
}
编辑:虽然此更改应该解决您最初的问题,但它仍然是一种将元素值分配给数组的非标准方法(读取:Array
不能像这样工作)。您似乎打算使用对象:
for (var f = 0; f < data.events.event.length; f++) {
if (data.events.event[f].hasOwnProperty('title')) {
Eventarray[f] = {
marker: marker[f],
...
};
}
答案 1 :(得分:0)
只是评论:
Eventeventarray 应该是一个对象(数组只是具有特殊长度属性的对象,你使用像对象一样的数组而不使用它的任何数组特殊性),这就是我认为你的意思正在努力创造:
eventArray = [
{
marker: marker[f],
content: content[f],
title: data.events.event[f].title,
description: data.events.event[f].description,
start_time: data.events.event[f].start_time,
venue: data.events.event[f].venue_name,
city: data.events.event[f].city,
state: data.events.event[f].state
}
];
此外,按照惯例,以大写字母开头的变量名称保留给构造函数。尽量保持名称描述内容,而不是结构,因此 events 可能是单个事件对象的数组:
var events = [event, event, ...];