Javascript数组帮助(多维度?)
我有一个从XML文件中提取数据的函数。我试图将该数据存储在一个数组中,这样我就可以在数组中循环并过滤它。因此,当数组中的“Time_of_Day”(从下拉菜单中)值=“Time_of_Day”时,我的数组将进行过滤 现在我只需要帮助构建阵列。然后,我将尝试了解如何循环使用它,并找到“一天中的时间”的值 下面是我从XML文件中提取数据的函数。现在我的数组只存储名称值(主要是因为我不知道自己在做什么)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=
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看起来像什么?