如何与ajax进行等值类型比较返回一个json空数组

时间:2016-01-27 00:37:21

标签: javascript jquery json ajax

我正在使用ajax来获取返回的json。有时它会返回一个空字符串。我想知道如何做一个' ===' json空字符串的等值类型比较。对于以下示例,我可以在' ==='的右侧放置什么?得到一个真实的'弹出窗口(注意:这个例子会返回' false')?提前谢谢!

<script type='text/javascript'>
    $(function(){
        $.post('somefile.php', function(data){alert([]===[]?'true':'false');}, 'json');
    })
</script>

2 个答案:

答案 0 :(得分:2)

它返回false,因为数组是引用类型,而不是基本类型;这意味着如果你说:

var a = []; var b = [];

ab存储对其值的引用,而不是值本身。因此,对a的值的引用和对b的值的引用并不相同。

比较数组,据我所知,你必须遍历所有元素并逐一比较它们。

另一方面,对于基本类型,您可以比较它们的值。所以也许你可以返回一个字符串并进行比较。

答案 1 :(得分:0)

如果回复data为空字符串,请尝试alert(data==='[]'?'true':'false') 如果你有一个数组作为回应只是检查它看起来很长。

alert(data.length?'true':'false')

因此,如果长度为0,则为Javascript的假值,并且您将为'true',如果长度为1或更大,则您将获得'false'。