所以我想写一个if else
语句,如果Array.isArray
为false,则显示一条消息。我在下面的功能允许用户输入地址,单击Find ZipCode
并执行该操作。该功能有效,只是如果我输入了无效的地址,它就不会显示我想要的消息,即invalid zipcode
在我的HTML中,我有:
<label>
Address:
<input name="address" type="text" id="address"></label>
<input type="button" value="Find ZipCode" id="find">
<p id="output"></p>
和Javascript:
var hello = function(data) {
var result = ""; // empty string to hold the value
var address = $("#address").val();
if (! Array.isArray(data))
{
$("#output").html("invalid zipcode");
}
else {
for (var i = 0; i < data.length; i++)
{
var zipcode = data[i].zipcode;
result += address + " zipcode: " + zipcode;
}
$("#output").html(result);
}
};
$("#find").click(function(){
var address = $("#address").val();
$("#output").html("Loading...");
$.getJSON("zipcodelookup.php", "address="+address , hello);
});
答案 0 :(得分:3)
除非您修改了Array.prototype
,否则没有Array.isArray
方法。我认为你要找的是$.isArray
。
答案 1 :(得分:0)
你也可以像这样测试一下它是否是一个数组:
function isArray(arr) {
return Object.prototype.toString.apply(arr) === '[object Array]';
}
答案 2 :(得分:0)
在Javascript中测试类型以推断其他条件通常是一个坏主意。在这种情况下,如果找到邮政编码,则返回一个数组(某物)。
因此,您的结论是,如果您没有获得数组,则找不到邮政编码。这不是特别健壮,服务器返回更有用的定义消息或错误代码会更好,例如,它可以建议是否找不到邮政编码,输入无效或数据库不可用。
您还可以对返回的数组进行测试,看它是否具有您想要的功能(即使用特征检测)。