2016-03-04 94 views
0

我从rateit流星包得到输入。该软件包用于显示和获取用户填写的星级评分。当我得到未填写的评分值时(var buyUniq = $(".paymentRate").rateit('value')_.isEmpty()显示为空,但显示为空

该值显示为[](没有)。

typeof buyUniq表明它是一个对象。

使用JS的Boolean()对象包装器,它返回true。

Boolean(buyUniq) 

下划线的_.isEmpty()表示该对象不为空(返回false)

_.isEmpty(buyUniq) 

当转换为

+0

**空对象'{}'为真**。相反,任何非原始的都是**真**甚至是空的。 – Tushar

+0

如何检查对象内是否有任何东西? – chackerian

+0

稍微改变我的问题(我认为可以这么做)。我得到它为什么是真的,但为什么下划线_.isEmpty()表明它不是空的? – chackerian

回答

0

rateit瓦特如果它找不到选择器的值,那么它会显示一个值作为对象。

例:

var sellUniq = $(".describedRate").rateit('value'); 
var buyUniq = $(".paymentRate").rateit('value'); 

$(".describedRate")存在,$(".paymentRate")没有。

sellUniq将是一个数字,buyUniq将是一个非空的对象。

1

的对象为何物表明它不是空布尔计算结果为真

试试这个简单

var a = {}; 
Boolean(a);//outputs true 

我该如何检查一个对象里面是否有东西?

只是检查如果对象具有任何键

Object.keys(a).length > 0; //if returns true then it has something inside it 
+0

这个问题是两个选项都返回true,你的Object.keys(a).length> 0;当这种情况不是这样的情况下 – chackerian

+0

@chackerian它不会返回true,'var a = {}; Object.keys(a).length; Object.keys(a).length> 0;'在你的控制台中试试这个 – gurvinder372

1
> Boolean([]) // empty array 
< true 
> Boolean({}) // empty object 
< true 

数组长度:

myArray.length 

对象长度:

Object.keys(myObject).length;