如果数组为空,则尝试将数组记录到控制台

时间:2017-11-10 17:57:30

标签: arrays json

我正在使用地图和数据。单击某个状态时,它会从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;
&#13;
&#13;

2 个答案:

答案 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);