2016-03-04 133 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;