Как получить доступ к другому массиву, который находится внутри массива

1

Привет, ребята, интересно, как я могу отобразить данные "продуктов", которые находятся внутри массива, см. Мой код ниже

JSON Array

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");
   }
 }

поэтому я хочу отобразить "1", "2", которые находятся внутри продуктов, или если у меня есть несколько стран в массиве, и я хочу отобразить конкретный массив продуктов в стране, поэтому, надеюсь, у меня не получится проголосовать за непонятный английский или объяснения :-)

Показать ещё 1 комментарий
Теги:

4 ответа

1
Лучший ответ

Вы можете прокручивать массив так:

var places = [
{"country_name": "Denmark", "latitude": 56, "longitude": 10, "status": "OK", "site_name": "Denmark", "serial_number": "12345", "products":["1","2"]},
{"country_name": "France", "latitude": 5644, "longitude": 1044, "status": "OK", "site_name": "France", "serial_number": "125", "products":["3","4"]}]

places.forEach(function(item, index){
  if(item.country_name == "Denmark"){
    if(item.products){
      item.products.forEach(function(val){
        console.log(val);
      });
    }
  }
});
  • 0
    это работает спасибо
  • 0
    @ Кайл, добро пожаловать.
Показать ещё 8 комментариев
0

Простейшая петля через него мне кажется.

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]);
     }
   }
 }
  • 0
    Будет ли это работать, если это произойдет у меня более двух стран?
  • 0
    Я имею в виду, если я хочу показывать товары определенной страны, а у меня более двух стран?
Показать ещё 1 комментарий
0
  • places[0].products[0] чтобы получить значение "1"
  • places[0].products[1] чтобы получить значение "2"

places[0].products.join(',') чтобы присоединиться к двум значениям, разделенным запятой (,)

-1

Попробуй это

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

Надеюсь, это то, что вам нужно.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню