Javascript 如何访问阵列中的另一个阵列

Javascript 如何访问阵列中的另一个阵列,javascript,Javascript,大家好,我想知道如何显示数组中的“产品”数据。请参阅下面的代码 JSON数组 var places = [ {"country_name": "Denmark", "latitude": 56, "longitude": 10, "status": "OK", "site_name": "Denmark", "serial_number": "12345", "products":["1","2"]}, {"country_name": "Japan", "latitude": 56, "lon

大家好,我想知道如何显示数组中的“产品”数据。请参阅下面的代码

JSON数组

var places = [
{"country_name": "Denmark", "latitude": 56, "longitude": 10, "status": "OK", "site_name": "Denmark", "serial_number": "12345", "products":["1","2"]},
{"country_name": "Japan", "latitude": 56, "longitude": 10, "status": "OK", "site_name": "Norway", "serial_number": "12345", "products":["3","4"]},
{"country_name": "Denmark", "latitude": 56, "longitude": 10, "status": "OK", "site_name": "USA", "serial_number": "12345", "products":["7","6"]}]
Javascript

function displayData(e)
{
var html = '';
var mapDiv = document.getElementById('mapContainer'), i = 0,
    dataIndex, tooltipDiv, key,
    mapMarkers = $(mapDiv).find('.e-mapMarker'), index = 0;
var collection = [];

for (i = 0; i < mapMarkers.length; i++) {

    if (e.target.parentNode.parentNode == mapMarkers[i]) {
        index = i;

    }
}

html += '<div id="infocontainer" class="map_element">';
html += '<div class="p-image"></div>';
html += '<div class="popupdetail">';
html += '<div class="p-name"> Site Name: ' + places[index].site_name + '</div>';
html += '<div class="p-name"> Site Status: ' + places[index].status + '</div>';
html += '<div class="p-name"> Country: ' + places[index].country_name + '</div>';
html += '</div>';
html += '</div>';


if (!document.getElementById('map_tooltip'))
{
    tooltipdiv = $("<div></div>").attr('id', "map_tooltip");
    $(document.body).append(tooltipdiv);
    $(tooltipdiv).css({
        "display": "none", "padding": "5px",
        "position": "absolute",
        "z-index": "13000",
        "cursor": "default",
        "font-family": "Segoe UI",
        "color": "#707070",
        "font-size": "12px", "pointer-events": "none",
        "background-color": "#FFFFFF",
        "border": "1px solid #707070"
    });
}
else
   {
    tooltipdiv = $("#map_tooltip");
    $(tooltipdiv).css({
        "left": (e.pageX + 5),
        "top": (e.pageY + 5)
    });
    $(tooltipdiv).html(html).show("slow");
   }
 }
函数显示数据(e)
{
var html='';
var mapDiv=document.getElementById('mapContainer'),i=0,
dataIndex,tooltipDiv,键,
mapMarkers=$(mapDiv).find('.e-mapMarker'),index=0;
var集合=[];
对于(i=0;i
因此,我想呈现产品内部的“1”、“2”,或者如果我有多个国家/地区在数组中,我想呈现一个国家/地区的特定产品数组,所以我希望我不会因为不清楚的英语或解释而获得任何反对票:-)

试试这个

places[index].products.join(',')
希望这就是你所需要的。

试试这个

places[index].products.join(',')

希望这就是您所需要的。

您可以像这样在阵列中循环:

var位置=[
{“国家名称”:“丹麦”,“纬度”:56,“经度”:10,“状态”:“确定”,“地点名称”:“丹麦”,“序列号”:“12345”,“产品”:[“1”,“2”]},
{“国家名称”:“法国”,“纬度”:5644,“经度”:1044,“状态”:“确定”,“地点名称”:“法国”,“序列号”:“125”,“产品”:[“3”,“4”]}]
places.forEach(功能(项、索引){
如果(item.country_name==“丹麦”){
if(项目产品){
项目.产品.forEach(功能(val){
控制台日志(val);
});
}
}

});您可以在数组中循环,如下所示:

var位置=[
{“国家名称”:“丹麦”,“纬度”:56,“经度”:10,“状态”:“确定”,“地点名称”:“丹麦”,“序列号”:“12345”,“产品”:[“1”,“2”]},
{“国家名称”:“法国”,“纬度”:5644,“经度”:1044,“状态”:“确定”,“地点名称”:“法国”,“序列号”:“125”,“产品”:[“3”,“4”]}]
places.forEach(功能(项、索引){
如果(item.country_name==“丹麦”){
if(项目产品){
项目.产品.forEach(功能(val){
控制台日志(val);
});
}
}
});
  • 放置[0]。产品[0]
    以获取值“1”
  • 放置[0]。产品[1]
    以获取值“2”
places[0]。products.join(“,”)
将逗号(
)分隔的两个值连接起来。

  • 放置[0]。产品[0]
    以获取值“1”
  • 放置[0]。产品[1]
    以获取值“2”

places[0].products.join(“,”)
连接两个由逗号(
)分隔的值。

在我看来,这是一个更简单的循环

var places = [
    {"country_name": "Denmark", "latitude": 56, "longitude": 10, "status": 
     "OK", "site_name": "Denmark", "serial_number": "12345", "products":
     ["1","2"]},
    {"country_name": "Denmark", "latitude": 56, "longitude": 10, "status": 
     "OK", "site_name": "Denmark", "serial_number": "12345", "products":
     ["1","2"]}
    ]
for(var j = 0;j<places.length;j++){
   if(places[j].products){
    var plcs = places[j].products
    for(var i = 0;i < plcs.length;i++){
    console.log(plcs[i]);
     }
   }
 }
var位置=[
{“国家名称”:“丹麦”,“纬度”:56,“经度”:10,“状态”:
“确定”,“现场名称”:“丹麦”,“序列号”:“12345”,“产品”:
["1","2"]},
{“国家名称”:“丹麦”,“纬度”:56,“经度”:10,“状态”:
“确定”,“现场名称”:“丹麦”,“序列号”:“12345”,“产品”:
["1","2"]}
]

对于(var j=0;j,在我看来,这是一个更简单的循环

var places = [
    {"country_name": "Denmark", "latitude": 56, "longitude": 10, "status": 
     "OK", "site_name": "Denmark", "serial_number": "12345", "products":
     ["1","2"]},
    {"country_name": "Denmark", "latitude": 56, "longitude": 10, "status": 
     "OK", "site_name": "Denmark", "serial_number": "12345", "products":
     ["1","2"]}
    ]
for(var j = 0;j<places.length;j++){
   if(places[j].products){
    var plcs = places[j].products
    for(var i = 0;i < plcs.length;i++){
    console.log(plcs[i]);
     }
   }
 }
var位置=[
{“国家名称”:“丹麦”,“纬度”:56,“经度”:10,“状态”:
“确定”,“现场名称”:“丹麦”,“序列号”:“12345”,“产品”:
["1","2"]},
{“国家名称”:“丹麦”,“纬度”:56,“经度”:10,“状态”:
“确定”,“现场名称”:“丹麦”,“序列号”:“12345”,“产品”:
["1","2"]}
]


对于(var j=0;jSee)您是否尝试过places[index].products[0]和places[index].products[1]?您想在哪一行访问阵列?您尝试过places[index].products[0]和places[index].products[1]?您想在哪一行访问阵列?我可以向您提出另一个问题吗?如果阵列中有两个国家,该怎么办(例如丹麦和法国)我想只显示丹麦的产品我应该使用for循环替换forEach以显示丹麦下的产品吗?抱歉,我对这个数组非常陌生,因此您需要检查国家名称,如
if(item.country_name==“丹麦”){..
@Kyle,我在代码片段中做了更改。请看一下。好吧,但我不想说我的老板问我,如果我有国家A-Z,我应该写一个if语句,相当于JSON arrayLet us中的国家数。我可以问你另一个问题吗?如果数组中有两个国家(例如丹麦和法国),该怎么办我想只显示丹麦的产品我应该用for循环替换forEach以显示丹麦下的产品吗?抱歉,我对这个数组非常陌生,您需要检查国家名称,如
if(item.country\u name=='dankman'){..
@Kyle,我在代码段中做了更改。请看一下。好吧,但我不想说我的老板问我如果我有国家A-Z,我应该写一个if语句,该语句相当于我的JSON arrayLet us中的国家数。如果我有两个以上的国家,这行得通吗?我的意思是如果我想展示某个国家的产品ular country和我有两个以上的国家?针对多个地点进行了更改。两个国家都使用了相同的国家数据。更简单?由您决定