Привет, ребята, интересно, как я могу отобразить данные "продуктов", которые находятся внутри массива, см. Мой код ниже
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", которые находятся внутри продуктов, или если у меня есть несколько стран в массиве, и я хочу отобразить конкретный массив продуктов в стране, поэтому, надеюсь, у меня не получится проголосовать за непонятный английский или объяснения :-)
Вы можете прокручивать массив так:
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);
});
}
}
});
Простейшая петля через него мне кажется.
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]);
}
}
}
places[0].products[0]
чтобы получить значение "1"places[0].products[1]
чтобы получить значение "2" places[0].products.join(',')
чтобы присоединиться к двум значениям, разделенным запятой (,
)
Попробуй это
places[index].products.join(',')
Надеюсь, это то, что вам нужно.