Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript数组帮助(多维度?)_Javascript_Xml_Google Maps Api 3 - Fatal编程技术网

Javascript数组帮助(多维度?)

Javascript数组帮助(多维度?),javascript,xml,google-maps-api-3,Javascript,Xml,Google Maps Api 3,我有一个从XML文件中提取数据的函数。我试图将该数据存储在一个数组中,这样我就可以在数组中循环并过滤它。因此,当数组中的“Time_of_Day”(从下拉菜单中)值=“Time_of_Day”时,我的数组将进行过滤 现在我只需要帮助构建阵列。然后,我将尝试了解如何循环使用它,并找到“一天中的时间”的值 下面是我从XML文件中提取数据的函数。现在我的数组只存储名称值(主要是因为我不知道自己在做什么) var-markerfilter=new-Array(); MYMAP.placeMarkers=

我有一个从XML文件中提取数据的函数。我试图将该数据存储在一个数组中,这样我就可以在数组中循环并过滤它。因此,当数组中的“Time_of_Day”(从下拉菜单中)值=“Time_of_Day”时,我的数组将进行过滤

现在我只需要帮助构建阵列。然后,我将尝试了解如何循环使用它,并找到“一天中的时间”的值

下面是我从XML文件中提取数据的函数。现在我的数组只存储名称值(主要是因为我不知道自己在做什么)

var-markerfilter=new-Array();
MYMAP.placeMarkers=函数(文件名){
$.get(文件名、函数(xml){
$(xml).find(“marker”).each(函数(){
var name=$(this.find('name').text();
var address=$(this.find('address').text();
var address2=$(this.find('address2').text();
var Meeting_Type=$(this).find('Meeting_Type').text();
var Time_of_Meeting=$(this).find('Time_of_Meeting').text();
var Day_of_Meeting=$(this).find('Day_of_Meeting').text();
var Open_Meeting=$(this).find('Open_Meeting').text();
var轮椅=$(this.find('轮椅').text();
var ASL=$(this.find('ASL').text();
var Comments=$(this.find('Comments').text();
markerfilter.push(名称);
var MeetingType=document.getElementById(“会议类型”);
变量类型=会议类型。选项[MeetingType.selectedIndex]。文本;
var DayofMeeting=document.getElementById(“会议日期”);
var day=DayofMeeting.options[DayofMeeting.selectedIndex].text;
var TimeofMeeting=document.getElementById(“会议时间”);
var time=TimeofMeeting.options[TimeofMeeting.selectedIndex].text;
//为标记创建新的板条点
var lat=$(this.find('lat').text();
var lng=$(this.find('lng').text();
var point=new google.maps.LatLng(parseFloat(lat),parseFloat(lng));
//扩展边界以包括新点
MYMAP.bounds.extend(点);
var marker=new google.maps.marker({
位置:点,,
地图:MYMAP.map
});
var infoWindow=new google.maps.infoWindow();
var html='+name+'
'+address2+'
'+address+
'+Meeting_Type+',ASL:+ASL+'
评论:
公开会议:+Open_会议+'
无障碍轮椅:
; google.maps.event.addListener(标记'click',函数(){ setContent(html); 打开(MYMAP.map,marker); }); MYMAP.map.fitBounds(MYMAP.bounds); }); }); }
创建的XML文件如下所示:

<markers>
    <marker>
        <name>AA at Greek Food</name>
        <address>292 Danforth Avenue  Toronto, ON</address>
        <address2>Asteria</address2>
        <Meeting_Type>AA</Meeting_Type>
        <Time_of_Meeting>Late</Time_of_Meeting>
        <Day_of_Meeting>Wednesday</Day_of_Meeting>
        <Open_Meeting>Yes</Open_Meeting>
        <Wheelchair>Yes</Wheelchair>
        <ASL>Yes</ASL>
        <Comments>Greek food is good.</Comments>
        <lat>43.677322</lat>
        <lng>-79.353729</lng>
    </marker>
    <marker>
        <name>CA over Sushi</name>
        <address>18 Jane Street, Toronto, ON</address>
        <address2>ASA Sushi</address2>
        <Meeting_Type>CA</Meeting_Type>
        <Time_of_Meeting>Early</Time_of_Meeting>
        <Day_of_Meeting>Monday</Day_of_Meeting>
        <Open_Meeting>No</Open_Meeting><Wheelchair>Yes</Wheelchair>
        <ASL>No</ASL>
        <Comments>CA eating Sushi.</Comments>
        <lat>43.649773</lat>
        <lng>-79.484772</lng>
    </marker>
<markers>
$(xml).find("marker").each(function() {
    markerfilter.push({
        name: $(this).find("name").text(),
        address: $(this).find("address").text()
        // and so on
    });
});
console.log(markerfilter);​

// the markerfilter array will look like:
// 
// [
// {name: "name1", address: "address1", /*...*/},
// {name: "name2", address: "address2", /*...*/},
// .
// .
// .
// ]
$(xml).find("marker").each(function() {
    var markerdata = {};
    $(this).children().each(function() {
        markerdata[this.tagName] = $(this).text();
    });
    markerfilter.push(markerdata);
});
console.log(markerfilter);

希腊食品协会
多伦多市丹福斯大道292号
海星
AA
晚的
星期三
对
对
对
希腊食物很好。
43.677322
-79.353729
寿司上的咖啡
加拿大多伦多简街18号
ASA寿司
加利福尼亚州
早
星期一
诺伊斯
不
我喜欢吃寿司。
43.649773
-79.484772

您可能希望执行以下操作:

<markers>
    <marker>
        <name>AA at Greek Food</name>
        <address>292 Danforth Avenue  Toronto, ON</address>
        <address2>Asteria</address2>
        <Meeting_Type>AA</Meeting_Type>
        <Time_of_Meeting>Late</Time_of_Meeting>
        <Day_of_Meeting>Wednesday</Day_of_Meeting>
        <Open_Meeting>Yes</Open_Meeting>
        <Wheelchair>Yes</Wheelchair>
        <ASL>Yes</ASL>
        <Comments>Greek food is good.</Comments>
        <lat>43.677322</lat>
        <lng>-79.353729</lng>
    </marker>
    <marker>
        <name>CA over Sushi</name>
        <address>18 Jane Street, Toronto, ON</address>
        <address2>ASA Sushi</address2>
        <Meeting_Type>CA</Meeting_Type>
        <Time_of_Meeting>Early</Time_of_Meeting>
        <Day_of_Meeting>Monday</Day_of_Meeting>
        <Open_Meeting>No</Open_Meeting><Wheelchair>Yes</Wheelchair>
        <ASL>No</ASL>
        <Comments>CA eating Sushi.</Comments>
        <lat>43.649773</lat>
        <lng>-79.484772</lng>
    </marker>
<markers>
$(xml).find("marker").each(function() {
    markerfilter.push({
        name: $(this).find("name").text(),
        address: $(this).find("address").text()
        // and so on
    });
});
console.log(markerfilter);​

// the markerfilter array will look like:
// 
// [
// {name: "name1", address: "address1", /*...*/},
// {name: "name2", address: "address2", /*...*/},
// .
// .
// .
// ]
$(xml).find("marker").each(function() {
    var markerdata = {};
    $(this).children().each(function() {
        markerdata[this.tagName] = $(this).text();
    });
    markerfilter.push(markerdata);
});
console.log(markerfilter);
编辑 看看您的XML,我认为创建如下关联数组要容易得多:

<markers>
    <marker>
        <name>AA at Greek Food</name>
        <address>292 Danforth Avenue  Toronto, ON</address>
        <address2>Asteria</address2>
        <Meeting_Type>AA</Meeting_Type>
        <Time_of_Meeting>Late</Time_of_Meeting>
        <Day_of_Meeting>Wednesday</Day_of_Meeting>
        <Open_Meeting>Yes</Open_Meeting>
        <Wheelchair>Yes</Wheelchair>
        <ASL>Yes</ASL>
        <Comments>Greek food is good.</Comments>
        <lat>43.677322</lat>
        <lng>-79.353729</lng>
    </marker>
    <marker>
        <name>CA over Sushi</name>
        <address>18 Jane Street, Toronto, ON</address>
        <address2>ASA Sushi</address2>
        <Meeting_Type>CA</Meeting_Type>
        <Time_of_Meeting>Early</Time_of_Meeting>
        <Day_of_Meeting>Monday</Day_of_Meeting>
        <Open_Meeting>No</Open_Meeting><Wheelchair>Yes</Wheelchair>
        <ASL>No</ASL>
        <Comments>CA eating Sushi.</Comments>
        <lat>43.649773</lat>
        <lng>-79.484772</lng>
    </marker>
<markers>
$(xml).find("marker").each(function() {
    markerfilter.push({
        name: $(this).find("name").text(),
        address: $(this).find("address").text()
        // and so on
    });
});
console.log(markerfilter);​

// the markerfilter array will look like:
// 
// [
// {name: "name1", address: "address1", /*...*/},
// {name: "name2", address: "address2", /*...*/},
// .
// .
// .
// ]
$(xml).find("marker").each(function() {
    var markerdata = {};
    $(this).children().each(function() {
        markerdata[this.tagName] = $(this).text();
    });
    markerfilter.push(markerdata);
});
console.log(markerfilter);

您的xml看起来像什么?