我收到了这种格式的回复
[
{
"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);
}
}
}
答案 0 :(得分:1)
检查长度
if (toppins.length)
0
是假的
或toppins.length == 0
为空
答案 1 :(得分:0)
正如你在问题中建议的那样< 0
会失败,因为空数组的长度为零。要测试的是数组是空的,你想要:
if (toppings.length === 0) { ... }
因为.length
不可能给出否定答案。
这也可以(但恕我直言不应该)写成:
if (!toppings.length) { ... }
这是完全合法的并且是一种常见的习惯用法,但它依赖于将length
属性类型转换为布尔值,而=== 0
测试更明确,不需要执行任何强制转换。< / p>