如何检查数组是否为空

时间:2014-06-20 14:48:11

标签: jquery

我收到了这种格式的回复

[
    {
        "name": "Large, 100 Ml",
        "image": "http://hostip:8080/OrderSnacks/JSON_images/icecream_cup_vanilla.jpg",
        "quantity": "1",
        "price": "75",
        "toppings": []
    },
    {
        "name": "Regular, 50 Ml",
        "image": "http://hostip:8080/OrderSnacks/JSON_images/icecream_cup_vanilla.jpg",
        "quantity": "1",
        "price": "75",
        "toppings": [
            {
                "name": "Regular, 50 Ml0",
                "value": []
            }
        ]
    }
]

对于某些元素,浇头是空的,有些可能包含值。

如何检查浇头数组是否为空?

我试过toppins.length< 0和toppins!=' []'

但没有任何效果,请有人告诉我如何检查数组是否为空。

for (var j = 0; j < products.length; j++) 
       {
        var itemname = products[j].name
        var image = products[j].image
        var quan = products[j].quantity
        var price = products[j].price
       var toppins =  products[j].toppings

          if (itemname != 'undefined' && itemname!='') 
            {

        if (toppins.length < 0) 
        {
         alert('here'+itemname);
        }
           }
               }

2 个答案:

答案 0 :(得分:1)

检查长度

if (toppins.length)

0是假的

toppins.length == 0为空

答案 1 :(得分:0)

正如你在问题中建议的那样< 0会失败,因为空数组的长度为零。要测试的是数组是空的,你想要:

if (toppings.length === 0) { ... }

因为.length不可能给出否定答案。

这也可以(但恕我直言不应该)写成:

if (!toppings.length) { ... }

这是完全合法的并且是一种常见的习惯用法,但它依赖于将length属性类型转换为布尔值,而=== 0测试更明确,不需要执行任何强制转换。< / p>