我正在使用地图和数据。单击某个状态时,它会从JSON中提取相应的数据,并在无序列表中显示这些存储。如果某个州没有数据(例如怀俄明州),那么它应该记录到控制台是否为空。因此,当您单击Wyoming时,它应该意识到该数组为空并将其空白记录到控制台。
$("#paginateView").hide();
$("#stateButton").hide();
$("#mapWhereToBuy").usmap({
click: function(event, data) {
$.ajax({
url: 'https://165.227.69.79:8443/alanric/armaster/state/' + data.name + '?callback=functionCall',
dataType: "jsonp",
cache: true,
jsonpCallback: "functionCall",
success: function(json){
console.log(json);
var storeNames = '<ul class="list-group">';
$.each(json, function (i, item) {
var stores = item.cname;
if (stores && stores.length) {
storeNames += '<li class="content list-group-item">' + stores + '</li>';
} else {
console.log("Sorry, we do not carry products in your state.");
}
});
storeNames +='</ul>';
$('#clicked-state').html(storeNames);
$("#paginateView").show();
$("#stateButton").show();
$("#stateButton").html('You Selected:' + ' ' + data.name);
pageSize = 15;
showPage = function(page) {
$(".content").hide();
$(".content").each(function(n) {
if (n >= pageSize * (page - 1) && n < pageSize * page)
$(this).show();
});
}
showPage(1);
$("#paginateView li a").click(function() {
$("#paginateView li a").removeClass("current");
$(this).addClass("current");
showPage(parseInt($(this).text()))
});
}
});
}
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://www.cento.com/js/raphael.js"></script>
<script src="https://www.cento.com/js/jquery.usmap.js"></script>
<div id="mapWhereToBuy"></div>
<h1>Search By State</h1>
<h4>Click on a state to see store locations</h4>
<hr>
<div id="clicked-state"></div>
&#13;
答案 0 :(得分:0)
我能够通过使用这个“json.length === 0”来使它工作。如果有更好的选择,请让我知道谢谢!
答案 1 :(得分:0)
某些Array方法无法识别空数组,例如map()
。但map()
总会返回一个空数组。第一个例子是.map()
,带有一个数字数组,第二个例子是一个空数组。
var array1 = [];
var result1 = array1.map(function(obj, idx) {
var ID = idx;
return idx;
});
console.log(result1);
var array2 = [0, 0, 1];
var result2 = array2.map(function(obj, idx) {
var ID = idx;
return idx;
});
console.log(result2);